MKVMerge für den Matroska-Container
MKVToolnix ist ein Toolpaket für den Matroska-Container. Enthalten sind u.a. MKVInfo (zeigt detaillierte Informationen über eine Matroska-Datei), MKVExtract (Demuxing von Spuren aus einer Matroska-Datei) und der für uns wichtige Muxer MKVMerge mit seiner grafischen Oberfläche.
Bevor wir MKVMerge GUI benutzen, setzen wir in den Optionen unter File › Options › mmg den Haken bei Disable header removal compression. Die Header bei Audio- und Videotracks zu komprimieren, verursacht mit vielen Hardwareplayern Probleme beim Abspielen. Der Vorteil ist dagegen minimal, da die gemuxte Datei kaum kleiner wird.
Spuren laden und konfigurieren
Wir starten MKVMerge GUI, landen im Input-Register und laden hier per Drag & Drop oder mit dem Add-Button sämtliche Video-, Audio- und Untertiteldateien, die im fertigen Film enthalten sein sollen.
Die Spuren sind am Ende in der gleichen Reihenfolge in der Matroska-Datei gespeichert wie sie unter Tracks erscheinen. Mit Up und Down können wir Spuren verschieben. Dabei sollte zuerst das Video stehen, dann die Audiospuren und zum Schluss die Untertitel.
Im unteren Bereich des MKVMerge-Fensters konfigurieren wir die einzelnen Spuren, und zwar immer gerade diejenige, die in der Tracks-Liste angewählt ist.
Im Register General track options sind besonders die ersten beiden Einträge interessant. Track name enthält eine kurze Beschreibung der Spur, die auch in den meisten Playern angezeigt wird, z.B. um eine Tonspur als Audiokommentar zu kennzeichnen. Für Untertitel ist hier der richtige Platz, um die Art der Spur anzugeben; z.B. »nötige Untertitel« für eine Zwangsspur oder »komplett« für eine vollständige Untertitelspur.
Unter Language stellen wir die passende Sprache ein. Die erscheint dann beim Abspielen auch wieder im Player.
Mit dem Default track flag kennzeichnen wir eine Spur als Standardspur, die bevozugt vom Player ausgewählt wird. Pro Spurtyp (Video, Audio, Untertitel) kann nur jeweils eine der vorhandenen Spuren bevorzugt sein. In der Standardeinstellung default setzt MKVMerge automatisch jeweils für die erste Spur eines Typs das Flag auf yes und für alle anderen auf no. Das Forced track flag funktioniert genauso, kennzeichnet aber eine erzwungene Spur, die auf jeden Fall abgespielt werden soll.
Für Video- und Audiospuren sind die beiden Flags weniger wichtig. Bei Untertiteln bewirken sie dagegen im Zusammenspiel mit LAV Splitter, dass Zwangsuntertitel korrekt angezeigt werden. Dafür setzen wir das Default track flag bei der ersten Zwangsspur auf yes und bei allen anderen Untertitelspuren auf no. Bei einem Film ohne Zwangsuntertiteln würden wir also alle Untertitel auf no stellen. Das Forced track flag muss für alle Zwangsspuren auf auf yes stehen, für alle anderen auf no. So erreichen wir, dass bei Filmen mit Zwangsuntertiteln diese auch auf jeden Fall angezeigt werden, aber bei Filmen ohne Zwangsuntertitel nicht automatisch eine vollständige Untertitelspur aktiv wird. Hier noch einmal im Überblick für einen typischen Film:
default track | forced track | |
---|---|---|
Untertitel 1: Englisch (forced) | Ja | Ja |
Untertitel 2: Deutsch (forced) | Nein | Ja |
Untertitel 3: Englisch (komplett) | Nein | Nein |
Untertitel 4: Deutsch (komplett) | Nein | Nein |
Auch wenn wir LAV Splitter nicht verwenden wollen oder können, lassen sich korrekte Zwangsuntertitel hintricksen. Siehe dazu das Kapitel Zwangsuntertitel simulieren. Die Flags setzen wir trotzdem genauso wie gerade besprochen.
Damit kommen wir zu den Format specific options, die wir wieder für jede Spur extra einstellen. Die Optionen im folgenden Bild sind je nach Typ der Spur aktiv oder abgeblendet und nur der Übersicht halber in aktiver Form einen einzelnen Screenshot gepackt.
Delay hatten wir schon einmal bei BeSweet angesprochen. Um diese Anzahl Millisekunden muss die Audiospur verschoben werden, um synchron zum Video zu laufen. Steht der Wert im Dateinamen, überträgt ihn MKVMerge automatisch in das Delay-Feld. Ansonsten tun wir das manuell, natürlich – wenn nötig – incl. negativem Vorzeichen. Wichtig: Wenn wir beim Audio-Transcoding mit BeSweet das Delay schon einmal berücksichtigt haben, gilt jetzt immer ein Delay von 0.
Den Haken bei AAC is SBR... müssen wir setzen, wenn unsere AAC-Tonspuren den High-Efficiency-Modus (HE) verwenden und nicht im MP4-Container verpackt sind. Dann kann MKVMerge nämlich das Vorhandensein von HE nicht automatisch erkennen. Die Nero- und Quicktime-Encoder erzeugen immer MP4-AACs, d.h. wir müssen uns um den passenden Haken nicht kümmern.
Subtitle charset gibt den Zeichensatz für Textuntertitel an und bleibt normalerweise leer. Nur wenn wir ganz bewusst Untertitel mit einem ungewöhnlichen Zeichensatz erzeugt haben, stellen wir die passende Codierung hier ein. Compression gilt nur für Vobsub-Untertitel. Die lassen sich matroska-intern verlustlos komprimieren, womit wir etwa 70% Platz sparen. Um die Kompression einzuschalten, wählen wir zlib aus der Combobox.
Optionen fürs Seitenverhältnis
Für anamorphe Encodings sollten wir auch das AR-Flag des Containers setzen, was ebenfalls bei den Format specific options geschieht. Vorsicht dabei! Matroska verlangt nicht – wie ansonsten immer – das PAR, sondern das DAR. Ein wenig rechnen bleibt uns deshalb nicht erspart. Für klassische Encodings mit quadratischen Pixeln sollten beide AR-Optionsfelder leer bleiben.
Oft erkennt MKVMerge schon automatisch das im Videostream gesetzte AR-Flag und trägt den entsprechenden Wert bei Display width/height ein. Nicht von seltsamen Zahlen verwirren lassen: Die hier angegebene »Darstellungsauflösung« dient in der Praxis nur zur Angabe des AR und hat keinen direkten Bezug zur tatsächlichen Auflösung des Videos.
MKVMerge-Versionen älter als 2.7.0 behandeln H.264-Quellen auf besondere Weise. Bei solchen Videos entfernt MKVMerge das AR-Flag aus dem Videostream. Um das zu verhindern, müssen wir eine spezielle Option von Hand einfügen. Dazu wählen wir über das Menü Muxing › Add command line options, tragen im folgenden Dialog in der Zeile Command line options ein: --engage keep_bitstream_ar_info
und bestätigen mit OK. Ab MKVMerge 2.7.0 wird das AR-Flag im Videostream auch bei H.264 nicht mehr angetastet und wir brauchen auch keine speziellen Einstellungen mehr vornehmen.
Falls wir das Seitenverhältnis manuell eintragen müssen, bietet MKVMerge zwei Möglichkeiten. Die einfachere verbirgt sich hinter der gerade erwähnten Option Display width/height.
In die beiden Felder daneben setzen wir die korrekt entzerrte Wiedergabeauflösung ein. Da sich die vertikale Auflösung nicht ändert, brauchen wir im zweiten Feld nur die Bildhöhe nach dem Cropping eintragen. Die entzerrte horizontale Auflösung berechnen wir – erinnern wir uns an den Anamorph-Abschnitt – mit dieser Formel:
Zielbreite = Breite nach Cropping × PAR.
Für den üblichen Beispielfilm Die fabelhafte Welt der Amélie ergäbe sich
Zielbreite = 704 × 16/11 = 1024.
Entsprechend würden wir in die beiden Felder 1024 und 432 eintragen.
Die zweite Möglichkeit, das DAR anzugeben, ist die Option Aspect Ratio.
Im Eingabefeld steht das DAR als einfache Fließkommazahl. Um diesen Wert zu ermitteln, benötigen wir zuerst die korrekt entzerrte Wiedergabeauflösung, so wie wir sie für die erste Möglichkeit berechnet haben. Das DAR ergibt sich dann entsprechend seiner Definition als:
DAR = Zielbreite / Zielhöhe
Für unser Amélie-Beispiel bedeutet das
DAR = 1024 / 432 = 2,370370
Auf mehr als zwei oder drei Stellen zu runden, ist Unsinn, da sich nichts mehr am Ergebnis ändern würde. Ein Bildschirm kann eben nur ganze Pixel darstellen. Beim Eintippen müssen wir darauf achten, dass MKVMerge den Punkt als Dezimaltrenner erwartet, nicht das Komma.
Einstellungen für den ganzen Film
Damit sind die Einstellungen im Input-Register abgeschlossen, und wir wechseln zu Global.
File/segment title funktioniert ähnlich der Track-name-Angabe für die einzelnen Spuren, bezieht sich aber auf die gesamte Datei. Deswegen drängt es sich förmlich auf, hier den Filmtitel einzutragen. Unter Chapter file können wir die Datei mit den Kapitelinformationen angeben, die wir ganz am Anfang mit ChapterXtractor erstellt haben. Dieser lässt sich eine Sprache und – wie für Textuntertitel – ein Zeichensatz zuordnen.
Unter Output filename tragen wir den Pfad zur Zieldatei ein und können schließlich mit Start muxing den Multiplexing-Vorgang beginnen. Der dauert ein paar Minuten, dann liegt der Film komplett fertig in einem Stück auf der Platte. Falls wir auf mehrere CDs brennen wollen, folgt jetzt noch das Splitting. Ansonsten ist das DVD-Backup komplett.
Kommentare
Kommentar von Paul | 27.2.2012
Gibt es eine Möglichkeit, in Staxrip oder bei mkvmerge selbst einzustellen, dass keine Untertitelspur als default geflaggt wird?
Das wäre praktisch.. sonst hat man nach dem fertigen Encoden und Mergen durch Staxrip eine Filmdatei, die beim Abspielen mit Untertiteln nervt.
Kommentar von Brother John | 27.2.2012
Hi Paul,
nein, geht leider nicht. Lässt sich aber einfach korrigieren: Fertige MKV in MKVMerge im Header-Editor (Strg+E) laden und bei den UT-Spuren die Flags entsprechen setzen. Neu muxen ginge natürlich auch, aber bei großen Dateien ists über den Editor schneller.