MP4 dauert zu lange zum Starten

2519
user2783132

Ich konvertiere mein Video nach H.264 / MP4 mit ffmpeg. 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 von 1 bis 2 Stunden kann es jedoch einige Zeit dauern, bis die Wiedergabe beginnt. es lädt 6–10 MB und nur dann kann ich das Video abspielen.

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

2

1 Antwort auf die Frage

5
slhck

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

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

Das Atom würde hier beispielsweise 1653815 Bytes (ungefähr 1,5 MB) groß sein. Es könnte sein, dass das Atom für Ihre Dateien einfach zu groß ist.

Sie könnten versuchen, die Größe während der Kodierung zu reduzieren. In ffmpeg können Sie mit der -moov_sizeOption die maximale Größe des Atoms einstellen . Davon abgesehen ist Ihre Datei dafür einfach zu groß, und Sie sollten die Streaming-Methode ändern.

Eine Möglichkeit dazu wäre das ISMV-Format "Smooth Streaming". Es erstellt fragmentierte MP4-Dateien. Sie können es aktivieren, indem Sie eine der Fragmentoptionen festlegen und eine leere 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