Tengo problemas para convertir un FLV a MP4 que se reproducirá en iPhone/iPad a través de Video-js.
Parece que los comandos ffmpeg no se convierten correctamente.
Este es uno de los comandos originales que el software, cumulusclips, ejecuta en la conversión:
/usr/bin/ffmpeg -i /var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi -s 640x480 -vb 800k -ac 2 -ab 96k -ar 44100 -f flv /var/www/html/cumulus/cc-content/uploads/flv/M2q9rmYjSkElrCJA34Cr.flv
Salida similar a la siguiente:
Input #0, avi, from '/var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi':
Metadata:
ISFT : MEncoder 2:1.0~rc2-0ubuntu13
Duration: 00:09:56.45, start: 0.000000, bitrate: 9586 kb/s
Stream #0.0: Video: msmpeg4v2, yuv420p, 1920x1080, 24 tbr, 24 tbn, 24 tbc
Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
Output #0, flv, to '/var/www/html/cumulus/cc-content/uploads/flv/M2q9rmYjSkElrCJA34Cr.flv':
Metadata:
encoder : Lavf52.64.2
Stream #0.0: Video: flv, yuv420p, 640x480, q=2-31, 800 kb/s, 1k tbn, 24 tbc
Stream #0.1: Audio: libmp3lame, 44100 Hz, 2 channels, s16, 96 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Después de esto, ejecuta lo siguiente para dispositivos móviles:
/usr/bin/ffmpeg -i /var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi -s 480x360 -vb 600k -ac 2 -ab 96k -ar 44 100 -f mp4 /var/www/html/cumulus/cc-content/uploads/mobile/M2q9rmYjSkElrCJA34Cr_temp.mp4
Producción:
Input #0, avi, from '/var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi':
Metadata:
ISFT : MEncoder 2:1.0~rc2-0ubuntu13
Duration: 00:09:56.45, start: 0.000000, bitrate: 9586 kb/s
Stream #0.0: Video: msmpeg4v2, yuv420p, 1920x1080, 24 tbr, 24 tbn, 24 tbc
Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
Output #0, mp4, to '/var/www/html/cumulus/cc-content/uploads/mobile/M2q9rmYjSkElrCJA34Cr_temp.mp4':
Metadata:
encoder : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 480x360, q=2-31, 600 kb/s, 24 tbn, 24 tbc
Stream #0.1: Audio: libfaac, 44100 Hz, 2 channels, s16, 96 kb/s
Respuesta1
Estoy bastante seguro de que la versión de ffmpeg que estás usando está bastante desactualizada. Descargue una compilación estática para su sistema desdepágina de inicio oficialy utilizar el camino hacia lo nuevo ffmpeg
en lugar de lo viejo /usr/bin/ffmpeg
.
Por ejemplo, si descargaste tu compilación estática, puedes ponerla en /usr/local/bin/ffmpeg
, convertirla en ejecutable ( chmod ugo+x /usr/local/bin/ffmpeg
) y luego usarla.
Luego, desea que un comando como este convierta un video a MP4 que esté listo para HTML5 y pueda reproducirse en todo tipo de dispositivos móviles:
ffmpeg -i input.avi -c:v libx264 -c:a aac -strict experimental -b:a 128k \
-crf 23 -profile:v baseline -movflags faststart output.mp4
Varíe el CRF dependiendo de la calidad que desee (18–28 es un buen rango, más bajo significa mejor) o elija -b:v 2M
una codificación de tasa de bits fija a 2 MBit/s, por ejemplo.
La conversión original utilizaba vídeo MPEG-4 Parte 2 en lugar de MPEG-4 Parte 10, que debería ser compatible con dispositivos móviles, pero no necesariamente tiene que serlo. Es más seguro así.
Además, hoy en día, realmente no es necesario crear vídeos FLV. No conozco ningún dispositivo o tecnología de reproducción que requiera este formato (un poco antiguo).
Quizás también te interese esto:¿Qué conjunto de scripts ffmpeg necesito para obtener un "vídeo para todos" compatible con HTML5?