Was ist eine M2V-Datei?
Eine M2V-Datei enthält einen elementaren MPEG-2-Videostream ohne gemultiplextes Audio oder universellen Container. Zeitsteuerung oder begleitendes Audio können daher von einer anderen Datei oder einem Authoring-System bereitgestellt werden.
So funktionieren M2V-Dateien
M2V enthält die codierte Bildfolge, die ein MPEG-2-Video-Encoder erzeugt: einen Sequenzheader, optionale Bildgruppenheader und Bildheader mit den jeweiligen Bilddaten. Funktionen auf Containerebene wie benannte Spuren, Präsentationszeitstempel und verschachtelter Ton fehlen. Authoring-Software kombiniert den Stream mit separat codiertem Audio und multiplext beide in einen MPEG-Programmstrom, einen Transportstrom oder eine DVD-orientierte Struktur. Dort ergänzt die Systemschicht Zeitstempel in ihren Paketheadern. Da beim Multiplexen die codierten Bilder kopiert werden, lässt sich das Video ohne erneutes verlustbehaftetes Encoding remuxen.
Wichtige Fakten
- Die Dateiendung
.m2vist eine Namenskonvention für einen rohen H.262/MPEG-2-Videobitstrom und beweist für sich genommen nichts. Werkzeuge erkennen den Inhalt anhand seiner Startcodes: Die Erkennungsroutine von FFmpeg für rohes MPEG-Video zählt Sequenz-, Bild- und Slice-Startcodes und weist Daten zurück, die Pack-Header eines Programmstroms oder Audiopakete enthalten. - Eine M2V-Datei hat keine Präsentationszeitstempel, ihre Videosyntax beschreibt aber dennoch den zeitlichen Ablauf der Wiedergabe. Der Sequenzheader gibt Bildgröße, Informationen zum Seitenverhältnis und einen Wert für
frame_rate_codean, der Bildraten wie 24000/1001, 25 oder 30000/1001 Bilder pro Sekunde auswählt. Auf jeden MPEG-2-Bildheader folgt eine Erweiterung zur Bildcodierung. Deren Flagstop_field_firstundrepeat_first_fieldkönnen die Anzeigedauer des Bildes verlängern, etwa auf drei statt zwei Halbbildperioden beim Pulldown 3:2 von Filmmaterial. Bilddauern ergeben sich daher nicht immer allein aus der Bildrate. Präsentationszeitstempel gehören zur Systemschicht und erscheinen erst nach dem Multiplexen in PES-Paketheadern. Ein Bildgruppenheader enthält, sofern vorhanden, einen Zeitcode, der laut H.262 beim Decodieren keine Rolle spielt. - Das Umbenennen einer M2V-Datei in
.mpgmacht daraus keinen Programmstrom. Ein Programmstrom besteht aus Packs, jeweils mit einem Pack-Header, gefolgt von PES-Paketen. Nichts davon ist in einem reinen Videobitstrom vorhanden. Die Datei enthält weiterhin nur Video, und Software, die anhand des Inhalts entscheidet, erkennt weiterhin einen Elementarstrom. - Ton hinzuzufügen bedeutet Multiplexen, keine Konvertierung. Ein Multiplexer wie
mplexaus MJPEG Tools kombiniert MPEG-Video mit MPEG-Audio, AC-3-, DTS- oder LPCM-Streams zu einem Programmstrom, ohne erneutes Encoding. Dabei gelten zwei Bedingungen: Die Synchronisierung von Audio und Video ist in keiner der beiden Elementardateien gespeichert. Ein etwaiger Startversatz muss daher dem Multiplexer übergeben werden. Außerdem benötigt eine DVD-konforme Ausgabe den DVD-spezifischen Modus des Multiplexers, den das Handbuch zumplexselbst als weit entfernt von vollständigem DVD-Authoring beschreibt.
Wann M2V-Dateien relevant sind
M2V-Dateien stammen aus DVD- und Blu-ray-Authoring-Workflows, in denen Video getrennt von Audio als MPEG-2-Elementarstrom codiert wird und beide später gemultiplext werden. Compressor von Apple beschreibt beispielsweise seine MPEG-2-Elementarstromausgabe als einen Videokanal ohne Audio zur Verwendung in einer Authoring-Anwendung eines Drittanbieters. Für sich genommen hat eine M2V-Datei weder Ton noch Zeitstempel oder einen Index auf Containerebene. Behandeln Sie sie daher als Zwischenformat zum Multiplexen statt als Auslieferungsdatei.
Quellen
- Library of Congress: Formatbeschreibung für MPEG-2-Video-Encoding (H.262) (Elementarströme, Sequenzheader, Programmströme)
- Handbuch zu mplex(1), MJPEG Tools: Multiplexer für MPEG-1/2-Programm-/Systemströme
- FFmpeg-Formatdokumentation: Rohdaten-Muxer (mpeg2video, Dateiendung m2v) und Muxer für MPEG-1/MPEG-2-Programmströme
- Quellcode von FFmpeg 8.0: libavformat/mpegvideodec.c (Erkennung von rohem MPEG-Video)
- Apple-Compressor-Benutzerhandbuch: MPEG-2 (Ausgabe als Programm-, Elementar- und Transportstrom)
- ITU-T H.262 (02/2000) | ISO/IEC 13818-2: MPEG-2 Video (Videosequenzstruktur, Sequenzheader, Bildgruppenheader)
- ITU-T H.222.0 (08/2018) | ISO/IEC 13818-1: MPEG-2 Systems (PES-Pakete, Präsentationszeitstempel, Programmstrom-Packs)