Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2008, 13:14
xamamo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 1
Error usando la libreria ffmpeg-php

Hola a todos,

Hace escasos días la gente que administra un servidor linux del que dispongo, me instaló la librería ffmpeg-php para poder trabajar con archivos de video y exportarlos a FLV.

El código que uso es el que abunda en internet:

Código:
<?php 
// Establecer el archivo fuente 
$srcFile = "reffight.avi"; 
$destFile = "clock.flv"; 
$ffmpegPath = "/usr/local/bin/ffmpeg"; 
$flvtool2Path = "/usr/bin/flvtool2"; 
// Crear nuestro class FFMPEG-PHP 
$ffmpegObj = new ffmpeg_movie($srcFile); 
// Guardar las variables 
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth()); 
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight()); 
$srcFPS = $ffmpegObj->getFrameRate(); 
$srcAB = intval($ffmpegObj->getAudioBitRate()/1000); 
$srcAR = $ffmpegObj->getAudioSampleRate(); 
// Llamar al convertidor usando exec() 
exec($ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . " -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile . " | " . $flvtool2Path . " -U stdin " . $destFile); 
// Función de Multiplicación 
function makeMultipleTwo ($value) 
{ 
$sType = gettype($value/2); 
if($sType == "integer") 
{ 
return $value; 
} else { 
return ($value-1); 
} 
} 
?>
El caso, está en que el código me funciona a medias. Me genera el archivo FLV pero a 0Kb.

Trasteando con la gente de mi servidor, y otros compañeros foreros de php, hicieron que ejecutara directamente en la shell, el código exec:

Código:
/usr/local/bin/ffmpeg -i reffight.avi -ar 44100 -ab 1411 -f flv -s 320x240 clock.flv | /usr/bin/flvtool2 -U stdin clock.flv

Y el error es el siguiente:

Código:
Input #0, avi, from 'reffight.avi':
Duration: 00:00:06.60, start: 0.000000, bitrate: 962 kb/s
Stream #0.0: Video: cinepak, yuv420p, 320x240, 5.00 tb(r)
Stream #0.1: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
File 'clock.flv' already exists. Overwrite ? [y/N] y
Output #0, flv, to 'clock.flv':
Stream #0.0: Video: flv, yuv420p, 320x240, q=2-31, 200 kb/s, 5.00 tb(c)
Stream #0.1: Audio: libmp3lame, 44100 Hz, stereo, s16, 1 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Error while opening codec for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height
De lo que no se ponen de acuerdo ahora es:

1. Fallo de Intalación
2. El codec de salida es incorrecto, es probable que el codec de FLV no este instalado en la versión "esential" que me han instalado.
3. FLV es el codec de video, y el error hace referencia al stream de audio.


Pero en cualquier caso, no tengo solución...

Algún usuario avanzado de la libreria ffmpeg-php?

Un millon de gracias!