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)