Estou tendo problemas para converter um FLV em um MP4 que será reproduzido no iPhone/iPad via Video-js.
Parece que os comandos ffmpeg não estão convertendo corretamente.
Aqui está um dos comandos originais que o software, cumulusclips, está executando na conversão:
/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
Saída semelhante à seguinte:
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
Depois disso, ele está executando o seguinte para dispositivos móveis:
/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
Saída:
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
Responder1
Tenho quase certeza de que a versão do ffmpeg que você está usando está bastante desatualizada. Faça download de uma compilação estática para o seu sistema no sitepágina oficiale use o caminho para o novo ffmpeg
em vez do antigo /usr/bin/ffmpeg
.
Por exemplo, se você baixou sua compilação estática, você pode colocá-la em /usr/local/bin/ffmpeg
, torná-la executável ( chmod ugo+x /usr/local/bin/ffmpeg
) e então usá-la.
Então, você deseja um comando como este para converter um vídeo em um MP4 compatível com HTML5 e reproduzível em todos os tipos de dispositivos móveis:
ffmpeg -i input.avi -c:v libx264 -c:a aac -strict experimental -b:a 128k \
-crf 23 -profile:v baseline -movflags faststart output.mp4
Varie o CRF dependendo da qualidade desejada (18–28 é uma boa faixa, menor significa melhor) ou escolha -b:v 2M
codificação com taxa de bits fixa de 2 MBit/s, por exemplo.
A conversão original estava usando vídeo MPEG-4 Parte 2 em vez de MPEG-4 Parte 10, que deveria ser compatível com dispositivos móveis, mas não necessariamente precisa ser. É mais seguro assim.
Além disso, hoje em dia você realmente não precisa criar vídeos FLV. Não tenho conhecimento de nenhum dispositivo ou tecnologia de reprodução que exija esse formato (um pouco antigo).
Você também pode estar interessado nisso:De quantos scripts ffmpeg eu preciso para obter "Vídeo para todos" compatível com HTML5?