Não é possível converter FLV para MP4 para iPhone com ffmpeg

0

Estou tendo problemas com a conversão de um FLV para um MP4 que será reproduzido no iPhone / iPad por meio do 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

Resultado semelhante ao 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 celular:

/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
    
por billabongrob 25.07.2014 / 16:47

1 resposta

1

Tenho quase certeza de que a versão do ffmpeg que você está usando está desatualizada. Faça o download de uma versão estática do seu sistema na página oficial e use o caminho para o novo ffmpeg em vez do antigo /usr/bin/ffmpeg .

Por exemplo, se você fez o download da sua compilação estática, pode colocá-la em /usr/local/bin/ffmpeg , torná-la executável ( chmod ugo+x /usr/local/bin/ffmpeg ) e usá-la.

Então, você quer um comando como este para converter um vídeo em um MP4 compatível com HTML5 e reproduzível por 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 é um bom intervalo, menor significa melhor) ou escolha -b:v 2M para codificação de taxa de bits fixa em 2 MBit / s, por exemplo.

A conversão original estava usando o vídeo MPEG-4 Parte 2 em vez do MPEG-4 Parte 10, que deve ser suportado por dispositivos móveis, mas não necessariamente precisa ser. É mais seguro assim.

Além disso, atualmente você não precisa criar vídeos em FLV. Não tenho conhecimento de nenhum dispositivo ou tecnologia de reprodução que exija esse formato (um pouco antigo).

Você pode estar interessado nisso também: Que bando de scripts ffmpeg eu preciso para obter o" Video for everybody "compatível com HTML5?

    
por 25.07.2014 / 18:54