Zum Inhalt springen
Brother Johns Encodingwissen Wechseln zu: Inhalt, Abkürzungen

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.

Spuren laden und konfigurieren

MKVMerge ist genauso wie BeSweet eine Konsolenanwendung. Die grafische Oberfläche dazu nennt sich MKVMerge GUI (kurz mmg). Die starten wir, 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. Für Audio- und Videospuren habe ich mir angewöhnt, in Kurzform die technischen Daten einzutragen. Für Untertitel ist hier der richtige Platz, um die Art der Spur anzugeben; z.B. »keine Untertitel« für eine leere Spur, »nötige Untertitel« für eine Zwangsspur oder »komplett« für eine vollständige Untertitelspur.

Für Tricks zum Untertitel-Muxing siehe auch das Kapitel Zwangsuntertitel simulieren.

Unter Language stellen wir die passende Sprache ein. Die erscheint dann beim Abspielen auch wieder im Player.

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. Der Nero-Encoder erzeugt immer MP4-AACs, d.h. wir müssen uns um den passenden Haken nicht kümmern. Winamp dagegen erzeugt immer »nackte« AACs. Für die ist es wichtig, den Haken richtig zu setzen, da wir uns sonst Probleme beim Abspielen einhandeln.

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 H 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 nur zur Angabe des AR und hat keinen direkten Bezug zur tatsächlichen Auflösung des Videos.

Eine weitere Besonderheit müssen wir für H.264 beachten. 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.

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 müssten wir wie im Screenshot 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.