Das Starten von MP4 dauert zu lange

2

Ich konvertiere mein Video mit ffmpeg nach H.264 / MP4. Ich verschiebe dann das moov Atom an den Anfang der Datei mit qt-faststart, damit ich das Video streamen kann.

Bei kleinen Videos mit einer Länge von 5 bis 10 Minuten funktioniert alles einwandfrei. Bei großen Videos mit einer Länge von 1 bis 2 Stunden kann der Beginn der Wiedergabe jedoch einige Zeit in Anspruch nehmen. es lädt 6-10 MB und nur dann kann ich das Video abspielen.

Bei FLV-Videos ist dies nicht der Fall. Es wird sofort abgespielt, egal wie groß das Video ist. Wie kann ich das beheben?

user2783132
quelle

Antworten:

5

Sie können die Größe Ihres MOOV-Atoms mit AtomicParsley überprüfen . Laufen Sie atomicparsley file.mp4 -Tund suchen Sie nach so etwas:

Atom moov @ 20 of size: 1653815, ends @ 1653835

Hier wäre das Atom beispielsweise 1653815 Bytes (ungefähr 1,5 MB) groß. Es kann sein, dass das Atom für Ihre Dateien einfach zu groß ist.

Sie können versuchen, die Größe während der Codierung zu verringern. In ffmpeg können Sie die maximale Größe des Atoms mit der -moov_sizeOption einstellen . Abgesehen davon ist Ihre Datei möglicherweise einfach zu groß, und Sie sollten überlegen, Ihre Streaming-Methode zu ändern.

Ein Weg, dies zu tun, wäre das ISMV-Format "Smooth Streaming". Es werden fragmentierte MP4-Dateien erstellt. Sie können es aktivieren, indem Sie eine der Fragmentoptionen festlegen und ein leeres MOOV auswählen. Zum Beispiel:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict experimental \
-b:v 1M -b:a 128k -movflags frag_keyframe+empty_moov \
output.mp4
slhck
quelle