JKdigital

Produktion und Konsum digitaler Medien

JKdigital Logo

Das Moov Atom und wo es stehen sollte

Ein „beliebter“ Fehler bei der Erstellung von MPEG-4 Files für Webvideo ist die falsche Position des Moov Atoms. Steht das Moov Atom am Ende des Files, können Videos im Progressive Download nur mit immenser Verzögerung abgespielt werden.

Was ist das Moov Atom?

Im Moov Atom stehen wichtige Informationen, die der Player zum Abspielen eines Videos braucht. Das sind zum Beispiel die Auflösung des Videos, verwendete Codecs, Framerate, Audio-Samplefrequenz und die Anzahl an Frames.

Was ist Progressive Download?

Im Progressive Download per HTTP (auch ‚Pseudostreaming‘ genannt) kann das Video schon während des herunterladens abgespielt werden. Das ist das, was wir seit Jahren gewohnt sind. Dabei kann im Normalfall nur auf schon geladene Teile des Videos zugegriffen werden und es wird immer das komplette File heruntergeladen, unabhängig davon, wie viel tatsächlich von dem Video angesehen wird. Das File wird im Browser gecachet.

Im Gegensatz dazu wird bei „echten“ Streaming-Technologien (z.B. per RTMP) nur der gerade benötigte Teil des Videos geladen, es kann jederzeit jeder Punkt des Videos angespielt werden und der Traffic auf dem Server wird reduziert. Allerdings muss dann auch ein geeigneter Server eingesetzt werden (z.B. Wowza, Adobe Media Server). „Echtes“ Streaming lohnt sich besonders bei längeren Videos (länger als 10 Minuten).

Wo muss das Moov Atom nun stehen?

Kurzum: Vorne im File. Denn stünde es am Ende des Files, müsste im Progressive Download erst das komplette File heruntergeladen werden, damit der Player an die für ihn wichtigen Informationen im Moov Atom herankommt.

Beim Encoding wird das Moov Atom aber zunächst einmal hinten an das File geschrieben, denn der Encoder weiß ja erst zum Schluß, wie  viele Frames und in welcher Form er nun encodiert hat.

Mit dem Programm MP4Muxer können wir die Files analysieren und sehen hier das Moov Atom hinter dem großen Datenblock:

Screenshot Moov Atom am Ende

Bei den meisten Encoding-Programmen wird beim Abschluss des Encodings allerdings noch das Moov Atom nach vorne geschoben, oft gibt es dafür die Option „Fast Start“ oder „Streaming Mode“.

Dann steht das Moov Atom vor dem Datenblock:

Screenshot Moov Atom am Anfang

Was mache ich , wenn das Moov Atom am Ende des Files steht?

Einige Encoding-Programme bieten leider nicht die Möglichkeit, das Moov Atom an den Anfang des Files zu schreiben. Dazu gehört auch die beliebte FFmpeg-Bibliothek. Dann hilft das Kommandozeilen-Tool MP4Box. Mit dem Befehl MP4Box - inter 500 filename.mp4 wird das Interleaving des Files erneuert (die Aufteilung in Video- und Audioblöcke) und ganz nebenbei das Moov Atom dahin geschoben, wo es hingehört, nämlich vorne.

Update: Ab Version 1.0 bietet FFmpeg die option ‚-movflags faststart‘, die das Moov Atom in einem zusätzlichen Arbeitsschritt nach vorne versetzt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert