it-swarm.com.de

Was genau ist Fragmented mp4 (fMP4)? Wie unterscheidet es sich von normalem mp4?

Media Source Extension ( MSE ) benötigt fragmentierte mp4 für die Wiedergabe im Browser.

45
Aditya Gupta

Ein fragmentierter MP4 enthält eine Reihe von Segmenten, die einzeln angefordert werden können, wenn Ihr Server Bytebereichsanforderungen unterstützt.

Boxen aka Atome

Alle MP4-Dateien verwenden ein objektorientiertes Format, das Boxen oder Atome enthält.

Sie können eine Darstellung der Felder in Ihrem MP4 mit einem Online-Tool wie MP4-Parser oder unter Windows MP4-Explorer anzeigen. Vergleichen wir einen normalen MP4 mit einem fragmentierten:

Nicht fragmentiertes MP4

Dieser Screenshot (aus MP4-Parser ) zeigt einen MP4, der nicht fragmentiert wurde und ganz einfach ein massives Feld mdat (Filmdaten) enthält.

Representation of boxes within a normal, non fragmented MP4, generated using MP4 Parser

Wenn wir einen Video-Player erstellen, der adaptive Bitrate unterstützt, müssen wir möglicherweise die Byte-Position der 10-Sekunden-Marke in einer 0,5-Mbit/s- und einer 1-Mbit/s-Datei kennen, um die Videoquelle zu diesem Zeitpunkt zwischen den beiden Dateien zu wechseln. Das Ermitteln dieser genauen Byteposition innerhalb eines massiven mdat in jeder entsprechenden Datei ist nicht trivial.

Fragmentiertes MP4

Dieser Screenshot zeigt eine fragmentierte MP4, die mit MP4Box mit dem Profil onDemand segmentiert wurde.

Representation of boxes within a fragmented MP4, generated using MP4 Parser

Sie werden die Felder sidx und eine Reihe von moof + mdat bemerken. Der sidx ist der Segmentindex und speichert Metadaten der genauen Bytebereichsorte der moof + mdat Segmente.

Grundsätzlich können Sie sidx unabhängig laden (der Byte-Bereich wird in der zugehörigen Datei .mpd Media Presentation Descriptor definiert) und dann auswählen, welche Segmente Sie anschließend laden und hinzufügen möchten die MSE SourceBuffer .

Wichtig ist, dass jedes Segment in einem regelmäßigen Intervall Ihrer Wahl erstellt wird (dh alle 5 Sekunden), sodass die Segmente zeitlich auf Dateien mit unterschiedlichen Bitraten ausgerichtet werden können, sodass die Bitrate während der Wiedergabe einfach angepasst werden kann.

102
Philip Bulley