FLV kann mit ffmpeg nicht in MP4 für iPhone konvertiert werden

FLV kann mit ffmpeg nicht in MP4 für iPhone konvertiert werden

Ich habe Probleme beim Konvertieren einer FLV-Datei in eine MP4-Datei, die sich über Video-js auf dem iPhone/iPad abspielen lässt.

Es scheint, dass die ffmpeg-Befehle nicht richtig konvertiert werden.

Hier ist einer der ursprünglichen Befehle, die die Software Cumulusclips bei der Konvertierung ausführt:

/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

Ausgabe ähnlich der folgenden:

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

Danach läuft für Mobilgeräte Folgendes:

/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

Ausgabe:

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

Antwort1

Ich bin ziemlich sicher, dass die von Ihnen verwendete ffmpeg-Version ziemlich veraltet ist. Bitte laden Sie einen statischen Build für Ihr System von deroffizielle Homepageund verwenden Sie den Pfad zum Neuen ffmpegstatt zum Alten /usr/bin/ffmpeg.

Wenn Sie beispielsweise Ihren statischen Build heruntergeladen haben, können Sie ihn in ablegen /usr/local/bin/ffmpeg, ausführbar machen ( chmod ugo+x /usr/local/bin/ffmpeg) und dann verwenden.

Dann benötigen Sie einen Befehl wie diesen, um ein Video in eine MP4-Datei zu konvertieren, die HTML5-fähig ist und auf allen möglichen Mobilgeräten abgespielt werden kann:

ffmpeg -i input.avi -c:v libx264 -c:a aac -strict experimental -b:a 128k \
-crf 23 -profile:v baseline -movflags faststart output.mp4

Variieren Sie den CRF je nach gewünschter Qualität (18–28 ist ein guter Bereich, niedriger bedeutet besser) oder entscheiden Sie sich -b:v 2Mfür eine Kodierung mit fester Bitrate, beispielsweise 2 MBit/s.

Bei der ursprünglichen Konvertierung wurde MPEG-4 Part 2-Video anstelle von MPEG-4 Part 10 verwendet, was von mobilen Geräten unterstützt werden sollte, aber nicht unbedingt muss. So ist es sicherer.

Außerdem müssen Sie heutzutage wirklich keine FLV-Videos mehr erstellen. Mir ist kein Gerät oder keine Wiedergabetechnologie bekannt, die dieses (etwas altmodische) Format erfordern würde.

Das könnte Sie auch interessieren:Welche ffmpeg-Skripte benötige ich, um HTML5-kompatibles „Video für alle“ zu erhalten?

verwandte Informationen