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:
El caso, está en que el código me funciona a medias. Me genera el archivo FLV pero a 0Kb.<?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); } } ?>
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:
De lo que no se ponen de acuerdo ahora es: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
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!