moov atom: H.264 Dateien werden erst nach vollständigem Download abgespielt

Wer erste Versuche mit H.264-Videos und der neuen Beta des Flash Player unternommen hat, wird eventuell auf folgendes Problem gestoßen sein: Das Video wird erst abgespielt, wenn die Datei vollständig aus dem Internet heruntergeladen worden ist. Dieses Problem kennt der eine oder andere vielleicht von Apples QuickTime, wo dies manchmal ebenfalls der Fall ist.

Die Ursache liegt am so genannten „moov atom“, eine Art Inhaltverzeichnis über die Datenstruktur der Videodatei.

moov atom

Das „moov atom“ ist der Index einer MPEG-4-Datei, der Informationen zu den enthaltenen Videodaten und deren Datenstruktur beinhaltet. Dieser meist ein oder zwei Kilobyte große Index kann entweder am Anfang einer Datei oder am Ende einer Datei stehen.

  • Haben Dateien den Index am Ende der Datei, hat dies im Web zufolge hat, dass zuerst die komplette Datei heruntergeladen werden muss, bevor sie abspielbar ist. Der Player weiß nicht, wie er die Daten zu „interpretieren“ hat.
  • Stehen die Informationen jedoch am Anfang der Datei – also vor den eigentlichen Videodaten – ist der so genannte Progressive Download problemlos möglich. Da die Informationen über die Datenstruktur von Beginn an bekannt sind, können die Videos noch während des Downloads abgespielt werden.

H.264 Encoding für das Web

Möchte man H.264-Videos für den Flash Player produzieren, sollte man aufgrund der obigen Schilderungen darauf achten, Dateien mit dem Index am Dateianfang zu erstellen. Leider sind laut Tinic Uro die Anwendungen von Adobe (z.B. Premiere oder AfterEffects) dazu zurzeit nicht in der Lage.

Nutzt man z.B. QuickTime als Encoder, gibt es dort seit langem die Option „Schnellstart“ (engl.: fast start) unter der Rubrik „Für Internet-Streaming vorbereiten“. Hat man diese Funktion aktiviert, wird das „moov atom“ an den Anfang geschrieben.

Den Index nachträglich an den Anfang verschieben

Hat man bereits eine fertige Datei, kann man das „moov atom“ über einige Tools an den Anfang verschieben. Es gibt z.B. C-Programm mit dem Namen qt-faststart.c von Mike Melanson. Von Renaun Erickson gibt es den QTIndexSwapper, der mit AIR geschrieben worden ist (Adobe Integrated Runtime). Außerdem soll es bereits helfen, die Datei einfach mit QuickTime zu öffnen und mit „Speichern unter“ neu abzuspeichern.

Link: qt-faststart.c
Link: QTIndexSwapper AIR Application for Flash Player H.264 files
Link: moov atom (Apple mailing list)

[ad]

7 Gedanken zu „moov atom: H.264 Dateien werden erst nach vollständigem Download abgespielt“

  1. Ich habe gerade genau das Problem, nur ist die mp4 Datei wohl schon entsprechend vorbereitet und das „Problem“ tritt trotzdem auf.
    Ich kodiere die Datei mit Visual Hub auf einem Mac, und lade danach diese Datei (.mp4) auf den Server. Dort muss dann zunächst die volle Datei über den Flash-Player geladen werden.
    Nun, nur helfen die angegebenen Tools nicht bei dem Problem, da die mp4 Datei anscheinend gar nicht erst über diesen 2kb Index verfügt laut ‚qt-faststart‘.
    Rufe ich die Datei direkt über den Browser auf (ohne Flash) spielt Quicktime selber die Datei sofort noch während des Ladens ab. Hm?

  2. vielleicht kann wer helfen.

    Meine YouTube Videos laufen am Computer ruckelig, mit Strobe Effekt, auch wenn sie schon komplett downgeloadet sind. Am selben Computer laufen Videos, die noch bessere Qualität butterweich, es scheint was mit progressive oder interlace zu tun zu haben.
    Gefilmt ist das Material HDV 1080/50i ich klick beim herausrechnen auf H264 auch immer deinterlace an.

    Aber irgendwas klappt nicht. Am Mc läufts übrigens ruckelfrei. Verkleinert in meinem Blog auch.

    Wenn mein Computer jetzt damit überfordert sein sollte, warum spielen dann die Clips der Kollegen ruckelfrei.

    YouTube stellt die Videos doch nicht mit verschiedener Bitrate ein ? Oder??

  3. Vielen Dank für den Tipp, nun kann ich die mit xmedia-recode erstellten mp4 Dateien leicht mit QTIndexSwapper umschreiben, genial einfach. Das war bislang das Haar in der Suppe bei xmedia recode.

Schreibe einen Kommentar

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