Was ist eine M2TS-Datei?

Eine M2TS-Datei enthält einen BDAV-MPEG-2-Transportstrom, die bei Blu-ray Disc und AVCHD verwendete Variante des MPEG-2-Transportstroms. Darin steht ein Header mit 4 Bytes vor jedem Transportpaket mit 188 Bytes. Sie kann Video, Audio, Untertitelgrafiken und andere Elementarströme in einer Datei multiplexen.

So funktionieren M2TS-Dateien

Das schreibgeschützte Blu-ray-Disc-Format speichert Audio und Video jedes Clips als BDAV-MPEG-2-Transportstrom in einer Datei mit der Endung .m2ts. Der Stream besteht aus Quellpaketen mit jeweils 192 Bytes: Auf einen 4 Bytes großen TP_extra_header folgt jeweils ein standardmäßiges MPEG-2-Transportpaket mit 188 Bytes. Diese Pakete sind in ausgerichteten Einheiten mit 6144 Bytes aus jeweils 32 Paketen gruppiert. Innerhalb der Transportpakete gelten die üblichen Regeln von MPEG-2 Systems: Die Program Association Table verweist auf eine Program Map Table, die die Elementarströme des Programms anhand ihrer Paketkennung identifiziert. Auf einer Disc ist die Datei mit der Endung .m2ts nur die Hälfte eines Clips. Eine gleich nummerierte Datei mit der Endung .clpi speichert die Zeitstempel der Zugriffspunkte im Stream. Playlist-Dateien mit der Endung .mpls beschreiben den Wiedergabeinhalt als Liste von Wiedergabeelementen, die jeweils einen Ein- und Ausstiegspunkt auf der Zeitachse eines Clips festlegen. AVCHD-Camcorder zeichnen im selben Container auf. Die Formatbeschreibung der Library of Congress nennt mts als zweite Dateiendung dafür.

Wichtige Fakten

  1. Jedes Quellpaket umfasst 192 Bytes: einen 4 Bytes großen TP_extra_header, gefolgt von einem standardmäßigen MPEG-2-Transportpaket mit 188 Bytes. Ein Parser, der die Datei in Paketen mit 188 Bytes durchläuft, verliert die Ausrichtung, weil das Synchronisationsbyte des Transportstroms in jedem Quellpaket am Offset 4 liegt. Der MPEG-TS-Demuxer von FFmpeg löst dies, indem er die Paketgröße ermittelt und die ersten 4 Bytes jedes Pakets mit 192 Bytes überspringt.
  2. Eine einzelne Datei mit der Endung .m2ts enthält den Stream eines Clips, keinen Titel. Auf einer Blu-ray-Disc wählen die Playlists mit der Endung .mpls in BDMV/PLAYLIST Clip-Abschnitte und deren Reihenfolge aus. Die Clip-Informationsdateien mit der Endung .clpi in BDMV/CLIPINF enthalten die Zeitstempel der Zugriffspunkte, anhand derer ein Player den Lesebeginn bestimmt. Titel liegen eine Ebene darüber: Die Indextabelle der Disc verweist für jeden Titel auf ein Movie Object oder BD-J Object. Movie Objects sind in BDMV/MovieObject.bdmv gespeichert und starten die Playlist-Wiedergabe. Werden die Dateien in BDMV/STREAM einzeln geöffnet, erhält man daher die Streams jedes Clips, jedoch ohne die Wiedergabereihenfolge und die Ein- und Ausstiegspunkte, die die Playlists festlegen.
  3. Blu-ray-Untertitel können an zwei Stellen liegen. Bitmapbasierte Presentation-Graphics-Streams werden zusammen mit Video und Audio in den BDAV-Transportstrom gemultiplext. Textuntertitel bilden einen separaten Clip außerhalb dieses Multiplexes, den eine Playlist über einen Unterpfad einbindet. Sie befinden sich daher nicht in der Datei .m2ts des Hauptclips. Die Stream-Datei des Untertitelclips liegt zusammen mit den Audio- und Videoclips in BDMV/STREAM. Die Untertitelschriften sind separate Dateien mit der Endung .otf im Verzeichnis AUXDATA.
  4. Beim Umpacken von M2TS in einen anderen Container per Stream-Kopie bleiben codiertes Video und Audio unverändert, da nichts decodiert oder erneut codiert wird. FFmpeg weist darauf hin, dass eine Stream-Kopie dennoch scheitern kann, wenn der Zielcontainer Informationen benötigt, die die Quelle nicht bereitstellt. Blu-ray-Clips können MPEG-2-, H.264/AVC- oder VC-1-Video enthalten. Prüfen Sie daher für jeden Stream, ob der Zielcontainer ihn akzeptiert. Untertitel zeigen die Grenze: Im Quellcode von FFmpeg 8.0 hat der MP4-Muxer für keinen der beiden Blu-ray-Untertitelcodecs ein Codec-Tag und weist diese Streams zurück. Clips von kommerziellen Discs sind ein eigener Fall: Die Library of Congress weist darauf hin, dass M2TS selbst keine Verschlüsselung unterstützt, Blu-ray-Discs aber häufig durch AACS geschützt sind.

Wann M2TS-Dateien relevant sind

Medienpipelines begegnen M2TS beim Einlesen von AVCHD-Camcorder-Aufnahmen oder den Clip-Dateien im Verzeichnis BDMV/STREAM einer Blu-ray-Disc-Struktur. Entscheidend ist, ob eine Datei als eigenständiger Stream oder als ein Clip einer Disc behandelt wird: Eine einzelne Datei mit der Endung .m2ts lässt sich für sich demultiplexen. Wiedergabereihenfolge und Zugriffspunkttabellen sind jedoch in den zugehörigen Playlist- und Clip-Informationsdateien definiert, die Titel der Disc in deren Indextabelle.

Arbeiten mit M2TS-Dateien

Der MPEG-TS-Muxer von FFmpeg hat einen m2ts-Modus, der vor jedes Transportpaket ein Präfix mit 4 Bytes schreibt und feste Paketkennungen verwendet. Im Quellcode von FFmpeg 8.0 aktiviert die automatische Einstellung diesen Modus, wenn der Ausgabename auf .m2ts endet. In diesem Modus lässt der Muxer nicht mehr als ein Programm zu. Der Wert, den FFmpeg in das Präfix schreibt, ist ein Zeitstempel mit 30 Bit aus dem Programmtakt des Streams.

Eine Datei aus Paketen mit 192 Bytes zu schreiben, ist nicht dasselbe wie das Authoring einer Disc. Eine Blu-ray-Struktur namens BDMV benötigt zusätzlich Index-, Movie-Object-, Playlist- und Clip-Informationsdateien. Player navigieren über diese statt über die Stream-Dateien. Um eine Playlist statt eines einzelnen Clips zu lesen, bietet FFmpeg das Eingabeprotokoll bluray, das eine Playlist aus einer eingebundenen Disc-Struktur liest.

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren