MKVMERGE(1) Benutzerbefehle MKVMERGE(1) NAME mkvmerge - Fugt Multimedia-Datenstrome in eine Matroska(TM)-Datei zusammen. UBERSICHT mkvmerge [globale Optionen] {-o Ausgabe} [Optionen1] {Datei1} [[Optionen2] {Datei2}] [@Optionendatei.json] BESCHREIBUNG Dieses Programm nimmt die Eingabe von mehreren Mediendateien und vereinigt ihre Datenstrome (alle oder nur eine Auswahl) in eine Matroska(TM)-Datei. Siehe die Matroska(TM)-Website[1]. Wichtig Die Reihenfolge der Befehlszeilenoptionen ist wichtig. Bitte lesen Sie den Abschnitt >>Reihenfolge der Optionen<<, falls sie ein neuer Nutzer des Programms sind. Globale Optionen -v, --verbose Erhoht die Detailstufe. -q, --quiet Unterdruckt die Statusausgabe. -o, --output Dateiname Schreibt in die Datei Dateiname. Falls Aufteilung benutzt wird, wird dieser Parameter etwas anders behandelt. Einzelheiten finden Sie in der Erlauterung der Option --split. -w, --webm Erstellt eine WebM-konforme Datei. Dies wird auch eingeschaltet, falls die Namensendung der Ausgabedatei >>webm<< ist. Dieser Modus erzwingt mehrere Einschrankungen. Die einzigen erlauben Codecs sind VP8-, VP9-Video und Opus-, Vorbis-Tonspuren. Das Kopfelement DocType wird in >>webm<< geandert. Bei Kapiteln und Tags ist nur eine Untermenge aller Elemente erlaubt. mkvmerge(1) entfernt automatisch alle Elemente, die laut Spezifikation nicht erlaubt sind. --title Titel Setzt den allgemeinen Titel fur die Ausgabedatei, z.B. den Namen des Films. --default-language Sprachcode Setzt das Standard-Sprachkurzel, das fur alle Spuren benutzt wird, fur die keine Sprache mit der Option --language angegeben wurde und fur die der Quellcontainer keine Sprache bereitstellt. Das Standard-Sprachkurzel ist das fur >>nicht spezifiziert<< stehende >>und<<. Handhabung von Segmentinformationen (globale Optionen) --segmentinfo Dateiname.xml Liest Segmentinformationen aus einer XML-Datei. Diese Datei kann die Segmentfamilie UID enthalten, die Segment-UID und die vorherigen und nachsten Segment-UID-Elemente. Eine Beispieldatei und ein DTD sind in dem veroffentlichten MKVToolNix enthalten. Einzelheiten finden Sie im Abschnitt weiter unten uber Segmentinformations-XML-Dateien. --segment-uid SID1,SID2,... Setzt die zu verwendenden UIDs. Dies ist eine durch Kommas getrennte Liste von 128-Bit-Sgement-UIDs in der gewohnlichen UID-Form: Hexadezimalzahlen mit oder ohne Prafix >>0x<<, mit oder ohne Leerzeichen, exakt 32 Ziffern lang. Falls SID mit einem = beginnt, so wird der Rest als Name einer Matroska-Datei interpretiert, deren Segment-UID gelesen und benutzt wird. Jede erstellte Datei enthalt ein Segment und jedes Segment hat eine Segment-UID. Falls mehr Segment-UIDs angegeben als Segmente erstellt werden, werden die uberschussigen UIDs ignoriert. Falls weniger Segment-UIDs angegeben als Segmente erstellt werden, dann werden fur diese Segmente zufallige UIDs erzeugt. Handhabung von Kapiteln und Tags (globale Optionen) --chapter-language Sprachcode Setzt den ISO-639-2-Sprachcode, der fur jeden Kapiteleintrag geschrieben wurde. Voreinstellung ist >>eng<<. Einzelheiten finden Sie im nachfolgenden Abschnitt uber Kapitel. Diese Option kann sowohl fur einfache Kapiteldateien als auch fur Quelldateien benutzt werden, die Kapitel enthalten, aber keine Informationen uber die Sprache der Kapitel, z.B. MP4- und OGM-Dateien. Die mit dieser Option gesetzte Sprache wird ebenfalls beim Erzeugen von Kapiteln mit Hilfe der Option --generate-chapters benutzt. --chapter-charset Zeichensatz Setzt den Zeichensatz, der fur die Umwandlung einfacher Kapiteldateien in UTF-8 verwendet wird. Eine Erklarung, wie mkvmerge(1) Zeichensatze umwandelt, finden Sie im Abschnitt uber Textdateien und Zeichensatze. Dieser Schalter gilt auch fur Kapitel, die aus bestimmten Containertypen kopiert werden, z.B. Ogg/OGM- und MP4-Dateien. Einzelheiten finden Sie im nachfolgenden Abschnitt uber Kapitel. --chapter-sync d[,o[/p]] Passt die Zeitstempel von Kapiteln in der folgenden Quelldatei um d ms an. Alternativ kann die Option --sync mit der speziellen Spur-ID -2 benutzt werden (siehe Abschnitt Spezielle Spur-IDs)." o/p: passen die Zeitstempel um o/p an, um lineare Verschiebungen zu beheben. Falls p weggelassen wird, ist sie standardmassig 1. Sowohl o als auch p konnen Fliesskommazahlen sein. Voreinstellung: keine manuelle Synchronisationskorrektur (was dasselbe wie d = 0 und o/p = 1.0ist). Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --generate-chapters Modus mkvmerge(1) kann automatisch Kapitel erzeugen. Die folgenden zwei Modi werden momentan unterstutzt: o 'when-appending' - Dieser Modus erzeugt ein Kapitel am Anfang sowie ein weiteres Kapitel jedes Mal, wenn eine Datei angehangt wird. Dieser Modus funktioniert ebenfalls mit den Aufteilungsmodi >>parts:<< und >>parts-frames:<<. Fur diese Modi wird je ein Kapitel fur jeden angehangten Zeitstempelbereich erzeugt (diejenigen, deren Startzeitstempel mit >>+<< beginnt). Anmerkung mkvmerge(1) benotigt eine Video- oder Audio-Spur, um feststellen zu konnen, wann eine neue Datei angehangt wird. Falls eine oder mehr Videospuren gemuxt werden, so wird die erste davon benutzt. Andernfalls wird die erste Audio-Spur benutzt. o 'interval:Zeit-Spec' - Dieser Modus erzeugt ein Kapitel in festen Zeitabstanden, die durch Zeit-Spec angegeben werden. Das Format folgt entweder der Form HH:MM:SS.nnnnnnnnn, oder es ist eine Zahl gefolgt von einer der Einheiten 's', 'ms' oder 'us'. Beispiel: --generate-chapters interval:45s Die Namen der neu erzeugten Kapitel werden durch die Option --generate-chapters-name-template kontrolliert. Die Sprache wird mittels der Option --chapter-language festgelegt, welche vor --generate-chapters erscheinen muss. --generate-chapters-name-template Vorlage Dies setzt die Vorlage fur durch die Option --generate-chapters erzeugte Kapitelnamen. Falls die Option nicht angegeben wurde, wird der Standardwert 'Kapitel ' benutzt. Es gibt mehrere Variablen, die in der Vorlage benutzt werden konnen und die durch ihre tatsachlichen Werte ersetzt werden, sobald ein Kapitel erzeugt wird. Die Zeichenkette '' wird durch die Kapitelnummer ersetzt. Die Zeichenkette '' wird durch den Startzeitpunkt des Kapitels ersetzt. Die Zeichenketten >>>FILE_NAME><< und >><< sind nur bei der Kapitelerzeugung beim Anhangen von Dateien gesetzt. Sie werden durch den Namen der gerade angehangten Datei ohne bzw. mit der Erweiterung ersetzt. Beachten Sie, dass ausschliesslich der Basisname und Erweiterung eingefugt werden, nicht aber die Verzeichnis- oder Laufwerkskomponenten. Sie konnen mit >><< eine Mindestanzahl von Stellen fur die Kapitelnummer angeben, z.B. >><<. Die Nummer wird mit fuhrenden Nullen aufgefullt, falls die Stellenanzahl geringer als angegeben ist. Sie konnen das fur den Startzeitstempel benutzte Format mit anpassen. Als Format wird standardmassig '%H:%M:%S' genommen, falls keines angegeben wird. Gultige Formatanweisungen sind: o %h - Stunden o %H - Stunden, mit Nullen auf zwei Stellen aufgefullt o %m - Minuten o %M - Minuten, mit Nullen auf zwei Stellen aufgefullt o %s - Sekunden o %S - Sekunden, mit Nullen auf zwei Stellen aufgefullt o %n - Nanosekunden mit neun Stellen o %<1-9>n - Nanosekunden mit bis zu neun Stellen (z.B. drei Stellen mit %3n) --cue-chapter-name-format Format mkvmerge(1) unterstutzt das Lesen von CUEsheets fur Audiodateien als Eingabe fur Kapitel. CUEsheets enthalten normalerweise fur jeden Indexeintrag die Eintrage PERFORMER (>>Interpret<<) und TITLE (>>Titel<<). mkvmerge(1) benutzt diese beiden Zeichenketten, um den Kapitelnamen aufzubauen. Mit dieser Option kann das fur diesen Namen verwendete Format gesetzt werden. Falls diese Option nicht angegeben wurde, ist das Format >>%p - %t<< (der Interpret gefolgt von einem Leerzeichen, einem Gedankenstrich, einem weiteren Leerzeichen und dem Titel) die Voreinstellung von mkvmerge(1). Falls das Format angegeben wurde, dann wird alles ausser den folgenden Metazeichen, so wie es ist, kopiert und die Metazeichen werden wie folgt ersetzt: o %p wird durch die Zeichenkette PERFORMER des aktuellen Eintrags ersetzt, o %t wird durch die Zeichenkette TITLE des aktuellen Eintrags ersetzt, o %n wird durch die aktuelle Spurnummer ersetzt und o %N wird durch die aktuelle Spurnummer, aufgefullt mit einer fuhrenden Null, falls sie kleiner als zehn ist, ersetzt. --chapters Dateiname Liest Kapitelinformationen aus der Datei Dateiname. Einzelheiten finden Sie im nachfolgenden Abschnitt uber Kapitel. --global-tags Dateiname Liest globale Tags aus der Datei Dateiname. Einzelheiten finden Sie im nachfolgenden Abschnitt uber Tags. Allgemeine Ausgabesteuerung (fortgeschrittene globale Optionen) --track-order FID1:TID1,FID2:TID2,... Diese Option andert die Reihenfolge, in der die Spuren fur eine Eingabedatei erstellt werden. Das Argument ist eine durch Kommas getrennte Liste von ID-Paaren. Jedes Paar enthalt zuerst die Datei-ID (FID1), die einfach die Zahl ist, an welcher Stelle auf der Befehlszeile, beginnend bei 0, die Datei erscheint. Als zweites kommt die Spur-ID (TID1) dieser Datei. Falls irgendwelche Spuren weggelassen werden, dann werden diese Spuren erstellt, nachdem die mit dieser Option angegebenen erstellt wurden. Wenn diese Option nicht angegeben wurde, werden die Spuren zuerst anhand ihres Typs und anschliessend anhand der Position ihrer Quelldatei in den Kommandozeilen sortiert. Videospuren kommen zuerst gefolgt von Audio- & Untertitelspuren. Andere, selten genutzte Spurtypen kommen zuletzt. --cluster-length Spezifikation Begrenzt die Anzahl von Datenblocken oder die Laufzeit von Daten in jedem Cluster. Der Parameter Spezifikation kann entweder eine Zahl n ohne eine Einheit oder eine Zahl d sein, der >>ms<< folgt. Falls keine Einheit benutzt wird, wird mkvmerge(1) hochstens n Datenblocke in jeden Cluster ablegen. Die maximale Anzahl von Blocken liegt bei 65535. Falls der Zahl d ein >>ms<< folgt, dann wird mkvmerge(1) hochstens d Millisekunden Daten in jeden Cluster ablegen. Das Minimum fur d liegt bei >>100ms<< und das Maximum bei >>32000ms<<. Standardmassig legt mkvmerge(1) hochstens 65535 Datenblocke und 5000 ms Daten in einen Cluster. Programme, die versuchen, ein bestimmtes Bild zu finden, konnen nur einen Cluster direkt suchen und mussen danach den ganzen Cluster lesen. Daher kann das Erstellen grosser Cluster zu ungenauem oder langsamem Durchsuchen fuhren. --clusters-in-meta-seek Sagt mkvmerge(1), dass es ein Metasuchelement am Ende der Datei erstellen soll, das alle Cluster enthalt. Siehe auch den Abschnitt uber das Matroska(TM)-Datei-Layout. --timestamp-scale Faktor Erzwingt den Faktor Faktor fur die Zeitstempelskala. Gultige Werte sind im Bereich 1000..10000000 und der Spezialwert -1. Normalerweise wird mkvmerge(1) einen Wert von 1000000 benutzen. Das bedeutet, dass Zeitstempel und Laufzeiten die Genauigkeit von 1 ms haben. Fur Dateien, die keine Videospuren aber mindestens eine Tonspur enthalten, wird mkvmerge(1) automatisch einen Faktor der Zeitstempelskala so wahlen, dass alle Zeitstempel und Laufzeiten die Genauigkeit eines Audio-Samples bekommen. Dies verursacht einen grosseren Aufwand, ermoglicht aber genaueres Suchen und Extrahieren. Falls der Spezialwert -1 benutzt wird, dann wird mkvmerge(1) die Genauigkeit des Samples auch dann verwenden, wenn eine Videospur vorhanden ist. --enable-durations Schreibt die Laufzeiten fur alle Blocke. Dies erhoht die Grosse der Datei und bietet dem, der es abspielt, im Moment keinen zusatzlichen Wert. --no-cues Teilt mkvmerge(1) mit, dass es die Indexdaten nicht erzeugen und schreiben soll, die mit einem Index in einem AVI verglichen werden konnen. Matroska(TM)-Dateien konnen ohne die Indexdaten abgespielt werden, aber das Durchsuchen ist moglicherweise ungenauer und langsamer. Benutzen Sie dies nur, falls Sie wirklich dringend Platz brauchen oder fur Testzwecke. Siehe auch die Option --cues, die fur jede Eingabedatei angegeben werden kann. --no-date Standardmassig setzt mkvmerge(1) das "Datum"-Segment-Informationen-Feld auf die Uhrzeit & Datum, als das Multiplexen gestartet wurde. Mit dieser Option wird das Feld gar nicht geschrieben. --disable-lacing Deaktiviert das Zusammenbinden aller Spuren, Dies erhoht die Grosse der Datei, insbesondere dann, wenn es viele Tonspuren gibt. Diese Option ist nicht fur den taglichen Gebrauch gedacht. --disable-track-statistics-tags Normalerweise schreibt mkvmerge(1) bestimmte Tags mit Statistiken fur jede Spur. Falls solche Tags bereits existieren, werden sie uberschrieben. Die Tags lauten BPS, DURATION, NUMBER_OF_BYTES und NUMBER_OF_FRAMES. Mit dieser Option wird mkvmerge(1) angewiesen, keine solchen Tags zu schreiben und bereits existierende Tags mit denselben Namen nicht zu verandern. --disable-language-ietf Normalerweise schreibt mkvmerge(1) die neuen IETF-BCP-47-Sprachelemente Erganzung zu den alten Sprachelementen in Spurkopfdaten, Kapiteln und Tags. Wenn diese Option benutzt wird, so werden nur die alten Elemente geschrieben. --normalize-language-ietf Modus Aktiviert die Normalisierung aller IETF-BCP-47-Sprach-Tags zu entweder ihrer kanonischen Form mit Modus >>canonical<<, zu ihrer Erweiterte-Sprach-Unterelemente-Form mit Modus >>extlang<< oder deaktiviert die Normalisierung mit Modus >>off<<. Standardmassig wird eine Normalisierung zur kanonischen Form durchgefuhrt. In der kanonischen Form werden alle Unterelemente, fur die bevorzugte Werte existieren, durch diese bevorzugten Werte ersetzt. Dies wandelt z.B. >>zh-yue-jyutping<< in >>yue-jyutping<< oder >>fr-FX<< in >>fr-FR<< um. Fur die Erweiterte-Sprach-Unterelemente-Form wird zuerst die kanonische Form gebildet. Anschliessend werden alle primaren Sprachelemente, fur die es erweiterte Sprach-Unterlemente gibt, durch diese erweiterten Sprach-Unterelemente und das dazugehorige Prafix ersetzt. Dies wandelt z.B. >>yue-jyutping<< zuruck in >>zh-yue-jyutping<< um, hat aber keine Auswirkung auf >>fr-FR<<, weil es fur >>fr<< kein erweitertes Sprach-Unterelement gibt. --stop-after-video-ends Stoppt die Verarbeitung, nachdem das Ende der primaren Videospur erreicht wurde, und verwirft alle ausstehenden Pakete anderer Spuren. Datei aufteilen, verknupfen, anhangen und verketten (weitere globale Optionen) --split Spezifikation Teilt die Ausgabedatei nach der angegebenen Grosse oder Zeit auf. Bitte beachten Sie, dass Spuren nur direkt vor einem Schlusselbild geteilt werden konnen. Daher kann sich der Aufteilungspunkt ein wenig von dem unterscheiden, der angegeben wurde. Derzeit unterstutzt mkvmerge(1) die folgenden Modi: 1. Aufteilen anhand der Grosse Syntax: --split [size:]d[k|m|g] Beispiele: --split size:700m oder --split 150000000 Der Parameter d kann mit >>k<<, >>m<< oder >>g<< enden, um anzuzeigen, ob die Grosse in kB, MB beziehungsweise GB vorliegt. Andernfalls wird von einer Grosse in Byte ausgegangen. Nachdem die aktuelle Ausgabedatei diese Grossenbegrenzung erreicht hat, wird eine neue angefangen. Das Prafix >>size:<< kann aus Kompatibilitatsgrunden weggelassen werden. 2. Aufteilen nach einer Laufzeit Syntax: --split [duration:]HH:MM:SS.nnnnnnnnn|ds Beispiele: --split duration:00:60:00.000 oder --split 3600s Der Parameter muss entweder die Form HH:MM:SS.nnnnnnnnn haben, um die Laufzeit mit einer Genauigkeit bis zu einer Nanosekunde anzugeben, oder eine Zahl d gefolgt vom Buchstaben >>s<< sein, um eine Laufzeit in Sekunden anzugeben. HH ist die Anzahl der Stunden, MM die Anzahl der Minuten, SS die Anzahl der Sekunden und nnnnnnnnn die Anzahl der Nanosekunden. Sowohl die Zahl der Stunden als auch die der Nanosekunden kann weggelassen werden. Es konnnen bis zu neun Nachkommastellen vorliegen. Nachdem der Laufzeit des Inhalts in der aktuellen Ausgabe diese Begrenzung erreicht hat, wird eine neue Ausgabedatei begonnen. Das Prafix >>duration:<< darf aus Kompatibilitatsgrunden weggelassen werden. 3. Aufteilen nach bestimmten Zeitstempeln Syntax: --split timestamps:A[,B[,C...]] Beispiel: --split timestamps:00:45:00.000,01:20:00.250,6300s Die Parameter A, B, C etc. mussen alle das gleiche Format wie das haben, das fur die Laufzeit benutzt wurde (siehe oben). Die Liste der Zeitstempel wird durch Kommas getrennt. Nachdem der Eingabestrom den Zeitstempel des nachsten Aufteilungspunkts erreicht hat, wird eine neue Datei erstellt. Dann wird der nachste Aufteilungspunkt in der Liste benutzt. Das Prafix >>timestamps:<< darf nicht weggelassen werden. 4. Aufbewahren bestimmter Teile durch die Angabe von Zeitstempelbereichen, wahrend andere verworfen werden Syntax: --split parts:Start1-Ende1[,[+]Start2-Ende2[,[+]Start3-Ende3...]] Beispiele: 1. --split parts:00:01:20-00:02:45,00:05:50-00:10:30 2. --split parts:00:01:20-00:02:45,+00:05:50-00:10:30 3. --split parts:-00:02:45,00:05:50- Der Modus parts teilt mkvmerge(1) mit, dass bestimmte Zeitstempelbereiche aufbewahrt werden, wahrend andere verworfen werden. Die Bereiche, die aufbewahrt werden sollen, mussen nach dem Schlusselwort parts: aufgefuhrt und durch Kommas getrennt werden. Ein Bereich selbst besteht aus einem Start- und Endzeitstempel im selben Format, wie dem, das andere Variationen von --split akzeptieren (z.B. beziehen sich sowohl 00:01:20 als auch 80s auf den selben Zeitstempel). Falls ein Startzeitstempel weggelassen wurde, wird er standardmassig auf das Ende des vorherigen Zeitstempelbereichs gesetzt. Falls es keinen vorherigen Bereich gab, dann wird er standardmassig auf den Dateianfang gesetzt (siehe Beispiel 3). Falls ein Endzeitstempel weggelassen wird, dann wird dies standardmassig das Ende der Quelldateien, wodurch mkvmerge(1) im Prinzip mitgeteilt wird, dass es den Rest behalten soll (siehe Beispiel 3). Normalerweise wird jeder Bereich in eine neue Datei geschrieben. Dies kann so geandert werden, dass aufeinanderfolgende Bereiche in dieselbe Datei geschrieben werden. Dafur muss man dem Startzeitstempel ein + voranstellen. Dies teilt mkvmerge(1) mit, dass es keine neue Datei erstellen und den Bereich stattdessen an dieselbe Datei anhangen soll, in die der letzte Bereich geschrieben wurde. Zeitstempel werden angepasst, so dass es in der Ausgabedatei keine Lucke gibt, selbst wenn es in den beiden Bereichen in der Eingabedatei eine Lucke gab. Im Beispiel 1 wird mkvmerge(1) zwei Dateien erstellen. Die erste wird den Inhalt beginnend bei 00:01:20 bis 00:02:45 enthalten. Die zweite Datei wird den Inhalt von 00:05:50 bis 00:10:30 enthalten. Im Beispiel 2 wird mkvmerge(1) nur eine Datei erstellen. Diese Datei wird den Inhalt beginnend bei 00:01:20 bis 00:02:45 und den Inhalt beginnend bei 00:05:50 bis 00:10:30 enthalten. Im Beispiel 3 wird mkvmerge(1) zwei Dateien erstellen. Die erste wird den Inhalt vom Anfang der Quelldateien bis 00:02:45 enthalten. Die zweite Datei wird den Inhalt beginnend bei 00:05:50 bis zum Ende der Quelldatei enthalten. Anmerkung Beachten Sie, dass mkvmerge(1) nur Entscheidungen uber das Aufteilen an Schlusselbildpositionen trifft. Dies gilt sowohl fur den Anfang als auch das Ende von jedem Bereich. Daher wird mkvmerge(1) sogar dann mit der Ausgabe der Bilder bis vor das nachste Bild fortfahren, wenn der Zeitstempel zwischen zwei Schlusselbildern liegt. 5. Aufbewahren bestimmter Teile durch Angabe von Bild-/Feldnummerbereichen wahrend andere verworfen werden Syntax: --split parts-frames:Start1-Ende1[,[+]Start2-Ende2[,[+]Start3-Ende3...]] Beispiele: 1. --split parts-frames:137-258,548-1211 2. --split parts-frames:733-912,+1592-2730 3. --split parts-frames:-430,2512- Der Modus parts-frames teilt mkvmerge(1) mit, dass bestimmte Bereiche von Bild-/Feldnummern aufbewahrt werden, wahrend andere verworfen werden. Die Bereiche, die aufbewahrt werden sollen, mussen nach dem Schlusselwort parts-frames: aufgefuhrt und durch Kommas getrennt werden. Ein Bereich selbst besteht aus einer Start- und Endbildnummer. Die Nummerierung beginnt bei 1. Falls eine Startnummer weggelassen wird, wird sie standardmassig auf die Endnummer des vorherigen Bereichs gesetzt. Falls es keinen vorherigen Bereich gibt, wird sie standardmassig zum Dateianfang (siehe Beispiel 3). Falls eine Endnummer weggelassen wird, dann wird dies standardmassig das Ende der Quelldateien, wodurch mkvmerge(1) im Prinzip mitgeteilt wird, dass es den Rest behalten soll (siehe Beispiel 3). Normalerweise wird jeder Bereich in eine neue Datei geschrieben. Dies kann so geandert werden, dass aufeinanderfolgende Bereiche in dieselbe Datei geschrieben werden. Dafur muss man der Startnummer ein + voranstellen. Dies teilt mkvmerge(1) mit, dass es keine neue Datei erstellen und den Bereich stattdessen an dieselbe Datei anhangen soll, in die der letzte Bereich geschrieben wurde. Zeitstempel werden so angepasst, dass es in der Ausgabedatei keine Lucke gibt, auch dann nicht, wenn es in den beiden Bereichen in der Eingabedatei eine Lucke gab. Anmerkung Beachten Sie, dass mkvmerge(1) nur Entscheidungen uber das Aufteilen an Schlusselbildpositionen trifft. Dies gilt sowohl fur den Anfang als auch das Ende jedes Bereichs. Daher wird mkvmerge(1) sogar dann mit der Ausgabe der Bilder bis vor das nachste Bild fortfahren, wenn die Bild-/Feldnummer zwischen zwei Schlusselbildern liegt. Im Beispiel 1 wird mkvmerge(1) zwei Dateien erstellen. Die erste wird den Inhalt beginnend beim ersten Schlusselbild bei oder nach 137 bis vor das erste Schlusselbild bei oder nach 258 enthalten. Die zweite Datei wird den Inhalt beginnend bei 548 bis 1211 enthalten. Im Beispiel 2 wird mkvmerge(1) nur eine Datei erstellen. Diese Datei wird den Inhalt beginnend bei 733 bis 912 und den Inhalt beginnend bei 1592 bis 2730 enthalten. Im Beispiel 3 wird mkvmerge(1) zwei Dateien erstellen. Die erste wird den Inhalt vom Anfang der Quelldateien bis 430 enthalten. Die zweite Datei wird den Inhalt beginnend bei 2512 bis zum Ende der Quelldatei enthalten. Dieser Modus betrachtet nur die erste Videospur, die ausgegeben wird. Falls keine Videospur ausgegeben wird, wird es keine Aufteilung geben. Anmerkung Die mit diesem Argument angegebenen Zahlen werden basierend auf der Zahl der ausgegebenen Matroska(TM)-Blocke interpretiert. Ein einzelner Matroska(TM)-Block enthalt entweder ein komplettes Bild (fur fortlaufenden Inhalt) oder ein einzelnes Feld (fur Inhalt im Halbbildverfahren). mkvmerge(1) unterscheidet nicht zwischen diesen beiden und zahlt einfach nur die Anzahl der Blocke. Zum Beispiel: Falls jemand nach dem 25. kompletten Bild bei Inhalt im Halbbildverfahren aufteilen mochte, musste er 50 als Aufteilungspunkt benutzen (zwei Felder pro komplettem Bild). 6. Aufteilen nach bestimmten Bildern/Feldern Syntax: --split frames:A[,B[,C...]] Beispiel: --split frames:120,237,891 Die Parameter A, B, C etc. mussen jeweils positive Ganzzahlen sein. Die Nummerierung beginnt bei 1. Die Liste der Bild-/Feldnummern wird durch Kommas getrennt. Nachdem der Eingabedatenstrom die Bild-/Feldnummer des aktuellen Aufteilungspunkts erreicht hat, wird eine neue Datei erstellt. Dann wird der nachste in der Liste angegebene Aufteilungspunkt benutzt. Das Prafix >>frames:<< darf nicht weggelassen werden. Dieser Modus betrachtet nur die erste Videospur, die ausgegeben wird. Falls keine Videospur ausgegeben wird, wird es keine Aufteilung geben. Anmerkung Die mit diesem Argument angegebenen Zahlen werden basierend auf der Zahl der ausgegebenen Matroska(TM)-Blocke interpretiert. Ein einzelner Matroska(TM)-Block enthalt entweder ein komplettes Bild (fur fortlaufenden Inhalt) oder ein einzelnes Feld (fur Inhalt im Halbbildverfahren). mkvmerge(1) unterscheidet nicht zwischen diesen beiden und zahlt einfach nur die Anzahl der Blocke. Zum Beispiel: Falls jemand nach dem 25. kompletten Bild bei Inhalt im Halbbildverfahren aufteilen mochte, musste er 50 als Aufteilungspunkt benutzen (zwei Felder pro komplettem Bild). 7. Aufteilen vor bestimmten Kapiteln Syntax: --split chapters:all oder --split chapters:A[,B[,C...]] Beispiel: --split chapters:5,8 Die Parameter A, B, C etc. mussen jeweils positive Ganzzahlen sein. Die Nummerierung beginnt bei 1. Die Liste der Kapitel wird durch Kommas getrennt. Die Aufteilung wird kurz vor dem ersten Schlusselbild auftreten, dessen Zeitstempel grosser oder gleich dem Startzeitstempel fur die Kapitel ist, deren Nummern aufgelistet wurden. Ein Kapitel, das bei 0s beginnt, wird niemals fur das Aufteilen berucksichtigt und stillschweigend verworfen. Anstatt alle Kapitelnummern manuell aufzufuhren, kann das Schlusselwort all benutzt werden. Das Prafix >>chapters:<< darf nicht weggelassen werden. Anmerkung Das Matroska-Dateiformat unterstutzt beliebig tief verschachtelte Kapitelstrukturen, >>Editionseintrage<< und >>Kapitelelemente<< genannt. Dieser Modus betrachtet allerdings nur die obersten Ebenen der Kapitel uber alle Editionseintrage hinweg. Bei diesem Aufteilungsmodus wird der Ausgabedateiname anderes als im normalen Betrieb behandelt. Er kann einen Ausdruck >>%d<< enthalten, ahnlich wie printf, einschliesslich einer Feldbreite, z.B. >>%02d<<. Falls dies der Fall ist, wird die aktuelle Dateizahl entsprechend formatiert und an der Stelle im Dateinamen eingesetzt. Falls kein derartiges Muster vorkommt, dann wird vom Muster >>-%03d<< direkt vor der Dateinamenserweiterung ausgegangen: >>-o Ausgabe.mkv<< wurde zu >>Ausgabe-001.mkv<< fuhren und so weiter. Falls es keine Dateinamenserweiterung gibt, wird >>-%03d<< an den Namen angehangt. Ein weiterer moglicher Ausdruck ist >>%c<<, der durch den Namen des ersten Kapitels in der Datei ersetzt wird. Beachten Sie, dass der Ausdruck >>-%03d<< nicht automatisch hinzugefugt wird, falls >>%c<< bereits vorhanden ist. --link Verknupft Dateien mit anderen, wenn die Ausgabedatei aufgeteilt wird. Einzelheiten finden Sie im nachfolgenden Kapitel uber das Verknupfen von Dateien. --link-to-previous Segment-UID Verknupft die erste Ausgabedatei an das Segment mit der durch den Parameter Segment-UID angegebenen Segment-UID. Einzelheiten finden Sie im nachfolgenden Abschnitt uber das Verknupfen von Dateien. Falls SID mit einem = beginnt, so wird der Rest als Name einer Matroska-Datei interpretiert, deren Segment-UID gelesen und benutzt wird. --link-to-next Segment-UID Verknupft die letzte Ausgabedatei an das Segment mit der durch den Parameter Segment-UID angegebenen Segment-UID. Einzelheiten finden Sie im nachfolgenden Kapitel uber das Verknupfen von Dateien. Falls SID mit einem = beginnt, so wird der Rest als Name einer Matroska-Datei interpretiert, deren Segment-UID gelesen und benutzt wird. --append-mode Modus Legt fest, wie Zeitstempel beim Anhangen von Dateien berechnet werden. Der Parameter Modus kann zwei Werte annehmen: >>file<<, der auch die Voreinstellung ist, und >>track<<. Wenn mkvmerge(1) eine Spur (von nun an >>track2_1<< genannt) von einer zweiten Datei (>>file2<< genannt) an eine Spur (>>track1_1<< genannt) von der ersten Datei (>>file1<< genannt) anhangt, dann mussen alle Zeitstempel fur >>track2_1<< um einen Betrag versetzt werden. Im Modus >>file<< ist dies der hochste in >>file1<< aufgetretene Betrag, auch wenn dieser Zeitstempel von einer anderen Spur als >>track1_1<< stammt. Im Modus >>track<< ist der Versatz der hochste Zeitstempel aus >>track1_1<<. Unglucklicherweise kann mkvmerge(1) nicht bestimmen, welcher Modus zuverlassig benutzt werden kann. Daher ist der Modus >>file<< die Voreinstellung. Der Modus >>file<< funktioniert normalerweise bei Dateien besser, die unabhangig von anderen erstellt wurden, z.B. wenn AVI- oder MP4-Dateien angehangt werden. Der Modus >>track<< funktioniert moglicherweise besser bei Quellen, die eigentlich nur Teile einer grossen Datei sind, z.B. bei VOB- und EVO-Dateien. Untertitelspuren werden immer so behandelt, als sei der Modus >>file<< aktiv, sogar dann, wenn tatsachlich der Modus >>track<< aktiv ist. --append-to SFID1:STID1:DFID1:DTID1[,...] Diese Option steuert, an welche Spur eine andere Spur angehangt wird. Jede Spezifikation enthalt vier IDs: eine Datei-ID, eine Spur-ID, eine zweite Datei-ID und eine zweite Spur-ID. Das erste Paar aus >>Quelldatei-ID<< und >>Quellspur-ID<< kennzeichnet die Spur, die angehangt wird. Das zweite Paar aus >>Zieldatei-ID<< und >>Zielspur-ID<< kennzeichnet die Spur, an die die erste angehangt wird. Falls diese Option weggelassen wurde, wird eine Standardzuordnung benutzt. Diese Standardzuordnung hangt jede Spur der aktuellen Datei an eine Spur der vorherigen Datei mit derselben Spur-ID an. Dies ermoglicht einfaches Anhangen mit dem Befehl mkvmerge -o Ausgabe.mkv Teil1.mkv +Teil2.mkv, falls ein Film in zwei Teile geschnitten wurde und beide Dateien dieselbe Anzahl von Spuren und Spur-IDs haben. + Ein einzelnes >>+<< fuhrt dazu, dass die nachste Datei angehangt statt hinzugefugt wird. Das >>+<< kann ausserdem vor den nachsten Dateinamen gesetzt werden. Daher sind die beiden folgenden Befehle identisch: $ mkvmerge -o vollstandig.mkv Datei1.mkv + Datei2.mkv $ mkvmerge -o vollstandig.mkv Datei1.mkv +Datei2.mkv [ Datei1 Datei2 ] Falls mehrere Dateinamen in eckigen Klammern stehen, dann werden die zweite und alle folgenden Dateien an die erste in den Klammern stehende Datei angehangt. Dies ist eine alternative Syntax dafur, Dateinamen mit >>+<< zwischen ihnen aufzulisten. Deshalb sind die zwei folgenden Befehle gleichwertig: $ mkvmerge -o vollstandig.mkv Datei1.mkv + Datei2.mkv $ mkvmerge -o vollstandig.mkv '[' Datei1.mkv Datei2.mkv ']' = Fur bestimmte Dateitypen (MPEG Programmstrome = VOBs) sucht mkvmerge(1) normalerweise im selben Verzeichnis nach Dateien wie eine Eingabedatei, die den gleichen Basisnamen hat und sich nur in ihrer fortlaufenden Nummer unterscheidet (z.B. >>VTS_01_1.VOB<<, >>VTS_01_2.VOB<<, >>VTS_01_3.VOB<<, etc.) und behandelt alle diese Dateien, als ob sie zu einer einzigen grossen Datei verbunden waren. Diese Option, ein einzelnes >>=<<, veranlasst mkvmerge(1), nicht nach diesen zusatzlichen Dateien zu suchen. Das >>=<< kann kann ausserdem vor den nachsten Dateinamen gesetzt werden. Daher entsprechen die beiden folgenden Befehle einander: $ mkvmerge -o vollstandig.mkv = Datei1.vob $ mkvmerge -o vollstandig.mkv =Datei1.vob ( Datei1 Datei2 ) Falls mehrere Dateinamen in runden Klammern stehen, dann werden diese Dateien so behandelt, als ob sie in einer einzigen grossen Datei verbunden waren, die aus dem Inhalt jeder der Dateien besteht, einer nach der anderen. Dies kann z.B. fur VOB-Dateien benutzt werden, die von einer DVD oder MPEG-Transportdatenstromen stammen. Es kann nicht verwendet werden, falls jede Datei einen eigenen Kopfdatensatz enthalt, was normalerweise bei eigenstandigen Dateien wie AVI oder MP4 der Fall ist. Einen Dateinamen in runde Klammern zu stecken verhindert auch, dass mkvmerge(1) nach zusatzlichen Dateien mit dem selben Basisnamen sucht. Dies wird bei der Option = beschrieben. Daher entsprechen die beiden folgenden Befehlszeilen einander: $ mkvmerge -o Ausgabe.mkv = Datei.mkv $ mkvmerge -o Ausgabe.mkv '(' Datei.mkv ')' Es ist auf mehrere Dinge zu achten: 1. Sowohl nach der offnenden als auch vor der schliessenden runden Klammer mussen Leerzeichen stehen. 2. Jeder Parameter in runden Klammern wird als Dateiname interpretiert. Daher mussen alle Optionen, die auf diese logische Datei angewandt werden, vor der offnenden runden Klammer aufgefuhrt werden. 3. Einige Shells behandeln runde Klammern als Sonderzeichen. Daher mussen Sie sie maskieren oder wie im oben gezeigten Beispiel in Anfuhrungszeichen setzen. Unterstutzung von Anhangen (weitere globale Optionen) --attachment-description Beschreibung Klarschriftbeschreibung des folgenden Anhangs. Gilt fur die nachste Option --attach-file oder --attach-file-once. --attachment-mime-type MIME-Typ MIME-Typ des folgenden Anhangs. Gilt fur die nachste Option --attach-file oder --attach-file-once. Eine Liste offiziell anerkannter MIME-Typen kann z.B. auf der IANA-Homepage[2] gefunden werden. Der MIME-Typ ist fur einen Anhang vorgeschrieben. Falls fur einen Dateianhang kein MIME-Typ angegeben wird, wird sein Typ automatisch erkannt. --attachment-name Name Setzt den Namen, der in der Ausgabedatei fur diesen Anhang gespeichert wird. Falls diese Option nicht angegeben ist, wird der Name vom Dateinamen des Anhangs abgeleitet, der mit der Option --attach-file oder der Option --attach-file-once vorgegeben wird. --attach-file Dateiname, --attach-file-once Dateiname Erstellt einen Dateianhang innerhalb der Matroska(TM)-Datei. Der MIME-Typ muss gesetzt worden sein, bevor diese Option benutzt werden kann. Der Unterschied zwischen diesen beiden Formen besteht darin, dass wahrend der Aufteilung die mit --attach-file angehangten Dateien an alle Ausgabedateien angehangt werden, wahrend die mit der Option --attach-file-once angehangten nur an die erste erstellte Datei angehangt werden. Falls keine Aufteilung benutzt wird, tun beide dasselbe. mkvextract(1) kann benutzt werden, um angehangte Dateien aus einer Matroska(TM)-Datei zu extrahieren. --enable-legacy-font-mime-types Aktiviert die Nutzung veralteter MIME-Typen fur bestimme Arten von Schriftart-Dateianhangen. Beispielsweise wird >>application/x-truetype-font<< fur TrueType-Schriftarten anstelle von >>fonts/ttf<< benutzt." Dies betrifft sowohl neue Dateianhange, sofern deren MIME-Typ automatisch erkannt wird, als auch existierende Dateianhange, deren gespeicherte MIME-Typen durch die veralteten ersetzt werden. Die betroffenen MIME-Typen sind >>font/sfnt<<, >>font/ttf<< und >>font/collection<<, die alle durch >>application/x-truetype-fonts<< ersetzt werden, sowie >>font/otf<<, das durch >>application/vnd.ms-opentype<< ersetzt wird." Optionen, die fur jede Eingabedatei verwendet werden konnen -a, --audio-tracks [!]n,m,... Kopiert die Tonspuren n, m etc. Die Zahlen sind Spur-IDs, die uber den Schalter --identify abgefragt werden konnen. Sie sind nicht nur einfach die Spurnummern (siehe den Abschnitt Spur-IDs). Voreinstellung: alle Tonspuren kopieren. Anstelle von Spur-IDs konnen auch ISO 639-2-Sprachcodes verwendet werden. Dies funktioniert nur bei Quelldateien, die Sprachcodes fur ihre Spuren bereithalten. Standard: alle Spuren diesen Typs kopieren Falls den IDs ein ! vorangestellt ist, ist ihre Bedeutung umgekehrt: alle Spuren dieses Typs kopieren ausser den nach ! aufgefuhrten. -d, --video-tracks [!]n,m,... Kopiert die Videospuren n, m etc. Die Zahlen sind Spur-IDs, die uber den Schalter --identify abgefragt werden konnen. Sie sind nicht nur einfach die Spurnummern (siehe den Abschnitt Spur-IDs). Voreinstellung: alle Videospuren kopieren. Anstelle von Spur-IDs konnen auch ISO 639-2-Sprachcodes verwendet werden. Dies funktioniert nur bei Quelldateien, die Sprachcodes fur ihre Spuren bereithalten. Falls den IDs ein ! vorangestellt ist, ist ihre Bedeutung umgekehrt: alle Spuren dieses Typs kopieren ausser den nach ! aufgefuhrten. -s, --subtitle-tracks [!]n,m,... Kopiert die Untertitelspuren n, m etc. Die Zahlen sind Spur-IDs, die uber den Schalter --identify abgefragt werden konnen. Sie sind nicht nur einfach die Spurnummern (siehe den Abschnitt Spur-IDs). Voreinstellung: alle Untertitelspuren kopieren. Anstelle von Spur-IDs konnen auch ISO 639-2-Sprachcodes verwendet werden. Dies funktioniert nur bei Quelldateien, die Sprachcodes fur ihre Spuren bereithalten. Falls den IDs ein ! vorangestellt ist, ist ihre Bedeutung umgekehrt: alle Spuren dieses Typs kopieren ausser den nach ! aufgefuhrten. -b, --button-tracks [!]n,m,... Kopiert die Button-Spuren n, m etc. Die Zahlen sind Spur-IDs, die uber den Schalter --identify abgefragt werden konnen. Sie sind nicht nur einfach die Spurnummern (siehe den Abschnitt Spur-IDs). Voreinstellung: alle Button-Spuren kopieren. Anstelle von Spur-IDs konnen auch ISO 639-2-Sprachcodes verwendet werden. Dies funktioniert nur bei Quelldateien, die Sprachcodes fur ihre Spuren bereithalten. Falls den IDs ein ! vorangestellt ist, ist ihre Bedeutung umgekehrt: alle Spuren dieses Typs kopieren ausser den nach ! aufgefuhrten. --track-tags [!]n,m,... Kopiert die Tags fur Spuren n, m etc. Die Zahlen sind Spur-IDs, die uber den Schalter --identify abgefragt werden konnen. Sie sind nicht nur einfach die Spurnummern (siehe den Abschnitt Spur-IDs). Voreinstellung: Tags fur alle Spuren kopieren. Falls den IDs ein ! vorangestellt ist, ist ihre Bedeutung umgekehrt: alles kopieren ausser den nach ! aufgefuhrten IDs. -m, --attachments [!]n[:all|first],m[:all|first],... Kopiert die Anhange mit den IDs n, m etc. in alle Ausgabedateien oder nur in die erste. Jeder ID kann entweder >>:all<< folgen (was Voreinstellung ist, wenn nichts eingegeben wird) oder >>:first<<. Falls Aufteilen aktiv ist, dann werden diese Anhange, deren IDs mit >>:all<< angegeben wurden, in alle resultierenden Ausgabedateien kopiert, wahrend die anderen nur in die erste Ausgabedatei kopiert werden. Falls kein Aufteilen aktiv ist, dann haben beide Varianten dieselben Auswirkungen. Standardmassig werden alle Anhange in alle Ausgabedateien kopiert. Falls den IDs ein ! vorangestellt ist, ist ihre Bedeutung umgekehrt: alles kopieren ausser den nach ! aufgefuhrten IDs. -A, --no-audio Keine Tonspur aus dieser Datei kopieren -D, --no-video Keine Videospur aus dieser Datei kopieren -S, --no-subtitles Keine Untertitelspur aus dieser Datei kopieren -B, --no-buttons Keine Button-Spur aus dieser Datei kopieren -T, --no-track-tags Keine spurspezifischen Tags aus dieser Datei kopieren --no-chapters Keine Kapitel aus dieser Datei kopieren -M, --no-attachments Keine Anhange aus dieser Datei kopieren --no-global-tags Keine globalen Tags aus dieser Datei kopieren -y, --sync TID:d[,o[/p]] Passt die Zeitstempel der Spur mit der ID TID um d ms an. Die Spur-IDs sind dieselben, wie die mit --identify angegebenen (siehe den Abschnitt Spur-IDs). o/p: passen die Zeitstempel um o/p an, um lineare Verschiebungen zu beheben. Falls p weggelassen wird, ist sie standardmassig 1. Sowohl o als auch p konnen Fliesskommazahlen sein. Voreinstellung: keine manuelle Synchronisationskorrektur (was dasselbe wie d = 0 und o/p = 1.0ist). Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --cues TID:none|iframes|all Steuert, fur welchen Spurenindex Eintrage fur die angegebene Spur erstellt werden (siehe den Abschnitt Spur-IDs). >>none<< verhindert das Erstellen von Indexeintragen. Fur >>iframes<< werden nur Blocke ohne Vorwarts- oder Ruckwartsbezuge (= IFrames in Videospuren) in das Cuesheet abgelegt. >>all<< veranlasst mkvmerge(1), Indexeintrage fur alle Blocke zu erstellen, wodurch die Datei sehr gross wird. Fur Video- und Untertitelspuren ist die Voreinstellung >>iframes<<, fur Audiospuren >>none<<. Siehe auch die Option --no-cues, die das Erstellen von Indexeintragen verhindert, ohne die benutzten --cues-Optionen zu berucksichtigen. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --default-track-flag TID[:bool] Setzt den >>Standardspur<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool nicht vorhanden ist. Der Schalter wird gesetzt, sofern der Quellcontainer dafur keine Informationen bereitstellt und auch die Benutzerin bzw. der Benutzer sie nicht uber diese Option angibt. Wenn die Benutzerin bzw. der Benutzer keine explizite Spur zum Abspielen festlegt, so sollte das Abspielprogramm eine derjenigen Spuren auswahlen, die den &Standardspur"-Schalter gesetzt haben und dabei Voreinstellungen wie die praferierte Sprache berucksichtigen. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --track-enabled-flag TID[:bool] Setzt den >>Spur aktiviert<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs) auf den Wert bool (0 oder 1; 1 falls nicht angegeben). Spuren sind standardmassig aktiviert, sofern fur sie keine Option angegeben wird und auch der Quellcontainer diese Informationen fur sie nicht bereitstellt. Nur Spuren, deren >>Spur aktiviert<<-Schalter gesetzt ist, sollten beim Abspielen berucksichtigt werden. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --forced-display-flag TID[:bool] Setzt den >>Abspielen erzwingen<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool auf 1 gesetzt oder nicht vorhanden ist. Kann fur Spuren genutzt werden, die auf dem Bildschirm angezeigten Text oder Dialoge in fremden Sprachen beinhalten. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --hearing-impaired-flag TID[:bool] Setzt den >>Horgeschadigt<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool auf 1 gesetzt oder nicht vorhanden ist. Kann gesetzt werden, wenn die Spur fur Horgeschadigte geeignet ist. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --visual-impaired-flag TID[:bool] Setzt den >>Sehbehindert<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool nicht vorhanden ist. Kann gesetzt werden, wenn die Spur fur Sehbehinderte geeignet ist. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --text-descriptions-flags TID[:bool] Setzt den >>Textbeschreibung<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool auf 1 gesetzt oder nicht vorhanden ist. Kann gesetzt werden, wenn die Spur eine schriftliche Beschreibung des Videoinhalts enthalt, die fur die Wiedergabe uber ein Sprachsynthese-System fur Sehbehinderte geeignet ist. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --original-flag TID[:bool] Setzt den >>Originalsprache<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool auf 1 gesetzt oder nicht vorhanden ist. Kann gesetzt werden, wenn die Spur in der Originalsprache (nicht in einer Ubersetzung) gehalten ist. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --commentary-flag TID[:bool] Setzt den >>Kommentar<<-Schalter fur die angegebene Spur (siehe den Abschnitt Spur-IDs), falls das optionale Argument bool auf 1 gesetzt oder nicht vorhanden ist. Kann gesetzt werden, wenn die Spur Kommentare enthalt. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. --track-name TID:Name Setzt den Spurnamen fur die angegebene Spur (siehe den Abschnitt Spur-IDs) auf Name. --language TID:Sprache Setzt die Sprache der angegebenen Spur (siehe den Abschnitt Spur-IDs). Es sind sowohl ISO 639-2-Sprachcodes als auch ISO 639-1-Landercodes erlaubt. Die Landercodes werden automatisch in die Sprachcodes umgewandelt. Alle Sprachcodes einschliesslich ihrer ISO 639-2-Codes konnen mit der Option --list-languages aufgefuhrt werden. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. -t, --tags TID:Dateiname Liest Tags fur die Spur mit der Nummer TID aus der Datei Dateiname. Einzelheiten finden Sie im nachfolgenden Abschnitt uber Tags. --aac-is-sbr TID[:0|1] Teilt mkvmerge(1) mit, dass die Spur mit der ID TID vom Typ SBR AAC ist (auch als HE-AAC oder AAC+ bekannt). Diese Option wird benotigt, falls a) die Quelldatei eine AAC-Datei ist (nicht fur eine Matroska(TM)-Datei) und b) die AAC-Datei >>SBR AAC<<-Daten enthalt. Der Grund fur diesen Schalter ist, dass es technisch unmoglich ist, normale AAC-Daten von SBR AAC zu unterscheiden, ohne das komplette AAC-Bild zu entschlusseln. Da es mehrere Patentprobleme mit AAC-Entschlusselungsprogrammen gibt, wird mkvmerge(1) diese Entschlusselungsstufe niemals enthalten. Daher ist dieser Schalter fur SBR AAC-Dateien zwingend notwendig. Die resultierende Datei kann moglicherweise nicht korrekt oder gar nicht wiedergegeben werden, wenn der Schalter weggelassen wird. Falls die Quelldatei eine Matroska(TM)-Datei ist, sollte die CodecID ausreichen, um SBR AAC zu bestimmen. Falls die CodecID jedoch falsch ist, kann der Schalter benutzt werden, um dies zu korrigieren. Falls mkvmerge(1) falschlicherweise feststellt, dass eine AAC SBR ist, konnen Sie >>:0<< zur Spur-ID hinzufugen. --audio-emphasis TID:n|symbolischer-Name Setzt die Vorverzerrung fur die Audiospur mit der Spur-ID TID. Der Modus kann entweder eine Zahl n (bestimmte Werte zwischen 0 und 16) oder ein symbolischer Name sein. Alle gultigen Nummern & symbolische Namen konnen mit der Option --list-audio-emphasis aufgelistet werden. --reduce-to-core TID Einige Audio-Codecs enthalten einen verlustbehafteten Kern und implementieren verlustfreies Decodieren durch Erweiterungen. Diese Option weist mkvmerge(1) an, nur den Kern zu kopieren, nicht aber die Erweiterungen. Standardmassig kopiert mkvmerge(1) sowohl den Kern als auch die Erweiterungen. Momentan werden nur DTS-Spuren von dieser Option beeinflusst. TrueHD-Spuren, die einen eingebetteten AC-3-Kern enthalten, werden statt dessen als zwei einzelne Spuren prasentiert, fur die separat entschieden werden kann, welche kopiert werden sollen. Bei DTS wurde das nicht funktionen, da HD-Erweiterungen nicht alleinstehend decodiert werden konnen - anders als bei TrueHD-Daten. --remove-dialog-normalization-gain TID Einige Audio-Codecs enthalten Kopfdatenfelder, die den Decoder oder das Abspielprogramm anweisen, eine (normalerweise negative) Signalverstarkung fur Dialognormalisierung anzuwenden. Diese Option weist mkvmerge(1) an, diese Signalverstarkung zu entfernen oder zu minimieren, indem die entsprechenden Kopfdatenfelder verandert werden. Momentan werden nur AC-3-, DTS- und TrueHD-Spuren von dieser Option beeinflusst. --timestamps TID:Dateiname Die Zeitstempel, die fur eine bestimmte Spur-ID von Dateiname benutzt werden, werden gelesen. Diese Zeitstempel erzwingen das Uberschreiben der normalerweise von mkvmerge(1) berechneten Zeitstempel. Lesen Sie den Abschnitt uber externe Zeitstempeldateien. --default-duration TID:x Erzwingt, dass die Standarddauer einer gegebenen Spur den angegebenen Wert annimmt. Ausserdem werden die Zeitstempel der Spur so geandert, dass sie zur Standarddauer passen. Dem Argument x muss >>s<<, >>ms<<, >>us<<, >>ns<<, >>fps<<, >>p<< oder >>i<< folgen, um die Dauer in Sekunden, Millisekunden, Mikrosekunden, Nanosekunden, Bildern pro Sekunde, fortlaufenden Bildern pro Sekunde beziehungsweise Halbbildern pro Sekunde anzugeben. Die Zahl x selbst kann eine Fliesskommazahl oder ein Bruch sein. Falls die Standarddauer nicht erzwungen wird, dann wird mkvmerge(1) versuchen, die Standarddauer der Spur, des Containers und/oder des codierten Bitstroms bei bestimmten Spurtypen, z.B. AVC/H.264 oder MPEG-2, abzuleiten. Diese Option kann auch benutzt werden, um die BpS von Videospuren zu andern, ohne eine externe Zeitstempeldatei zu verwenden. --fix-bitstream-timing-information TID[:0|1] Normalerweise andert mkvmerge(1) nicht die Zeiteinteilungsinformation (Bild-/Feldrate), die im Video-Bitstrom gespeichert ist. Mit dieser Option wird diese Information angepasst, damit sie zur Zeiteinteilungsinformation des Containers passt. Die Zeiteinteilungsinformation des Containers kann aus verschiedenen Quelle stammen: von der Befehlszeile (siehe die Option --default-duration), dem Quell-Container oder kann aus dem Bitstrom abgeleitet sein. Anmerkung Dies wurde bisher nur fur AVC/H.264-Videospuren implementiert. --compression TID:n Wahlt die Komprimierungsmethode aus, die fur diese Spur benutzt wird. Beachten Sie, dass das Abspielprogramm diese Methode ebenfalls unterstutzen muss. Gultige Werte sind >>none<<, >>zlib<< und >>mpeg4_p2<>mpeg4p2<<. Die Komprimierungsmethode >>mpeg4_p2<>mpeg4p2<< ist eine besondere Komprimierungsmethode, genannt >>Kopfdaten entfernen<<, die nur fur MPEG4-Teil-2-Videospuren verfugbar ist. Fur einige Untertiteltypen ist die Voreinstellung >>zlib<<-Komprimierung. Diese Komprimierungsmethode ist ausserdem jene, die die meisten, wenn nicht sogar alle Abspielprogramme unterstutzen. Fur andere Komprimierungsmethoden ausser >>none<< kann keine Unterstutzung zugesichert werden. Optionen, die nur fur Videospuren gelten -f, --fourcc TID:FourCC Erzwingt, dass FourCC den angegebenen Wert annimmt; funktioniert nur bei Videospuren im >>MS-Kompatibilitatsmodus<<. --display-dimensions TID:BreitexHohe Matroska(TM)-Dateien enthalten zwei Werte, die die Anzeigeeigenschaften setzen, auf die ein Abspielprogramm das Bild bei der Wiedergabe skalieren sollte: Anzeigebreite und Anzeigehohe. Diese Werte konnen mit dieser Option gesetzt werden, z.B. >>1:640x480<<. Eine weitere Moglichkeit, die Werte anzugeben, ist die Verwendung der Option --aspect-ratio oder --aspect-ratio-factor (siehe unten). Diese Optionen schliessen sich gegenseitig aus. --aspect-ratio TID:Verhaltnis|Breite/Hohe Matroska(TM)-Dateien enthalten zwei Werte, die die Anzeigeeigenschaften setzen, auf die ein Abspielprogramm das Bild bei der Wiedergabe skalieren sollte: Anzeigebreite und Anzeigehohe. Mit dieser Option wird mkvmerge(1) automatisch die Anzeigebreite und Anzeigehohe basierend auf der Originalbreite und -hohe berechnen und das mit dieser Option angegebene Seitenverhaltnis berucksichtigen. Das Verhaltnis kann entweder als Fliesskommazahl Verhaltnis oder als Bruch >>Breite/Hohe<<, z.B. >>16/9<<, angegeben werden. Eine weitere Moglichkeit, die Werte anzugeben, ist die Verwendung der Option --aspect-ratio-factor oder --display-dimensions (siehe oben und unten). Diese Optionen schliessen sich gegenseitig aus. --aspect-ratio-factor TID:Faktor|n/d Eine weitere Moglichkeit, das Seitenverhaltnis zu setzen, ist die Angabe eines Faktors. Das Originalseitenverhaltnis wird zuerst mit diesem Faktor multipliziert und hinterher als Zielseitenverhaltnis benutzt. Eine weitere Moglichkeit, die Werte anzugeben, ist die Verwendung der Option --aspect-ratio oder --display-dimensions (siehe oben). Diese Optionen schliessen sich gegenseitig aus. --cropping TID:links,oben,rechts,unten Setzt die Parameter fur das Abschneiden von Bildpunkten einer Videospur auf die angegebenen Werte. --color-matrix-coefficients TID:n Setzt die Matrix-Koeffizienten des Videos, die benutzt werden, um Helligkeits- und Farbton-/Sattigungs-Werte von den Primarfarben Rot, Grun und Blau abzuleiten. Der Parameter n ist eine Ganzzahl zwischen 0 und 10 inklusive. Gultige Werte und ihre Bedeutung sind: 0: GBR, 1: BT709, 2: nicht spezifiziert, 3: reserviert, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 nicht konstante Helligkeit, 10: BT2020 konstante Helligkeit --color-bits-per-channel TID:n Setzt die Anzahl codierter Bits fur einen Farbkanal. Der Wert 0 zeigt an, dass die Anzahl nicht spezifiziert ist. --chroma-subsample TID:hori,vert Die Anzahl der in den Cr- und Cb-Kanalen horizontal und vertikal zu entfernenden Pixel fur jeden nicht entfernten Pixel. Beispiel: Fur ein Video mit 4:2:0-Farbon-/Sattigungs-Unterabtastung sollte der Parameter auf TID:1,1 gesetzt werden. --cb-subsample TID:hori,vert Die Anzahl der im Cb-Kanal horizontal und vertikal zu entfernenden Pixel fur jeden nicht entfernten Pixel. Dies gilt zuzuglich zu --chroma-subsample. Beispiel: fur ein Video mit 4:2:1-Farbon-/Sattigungs-Unterabtastung sollte der Parameter --chroma-subsample auf TID:1,0 und Cb-Unterabtastung auf TID:1,0 gesetzt werden. --chroma-siting TID:hori,vert Setzt, wie Farbton/Sattigung horizontal und vertikal positioniert ist (0: nicht spezifiziert, 1: oben angeordnet, 2: halb). --color-range TID:n Setzt das Abschneiden des Farbbereiches (0: nicht spezifiziert, 1: Broadcast-Bereich, 2: voller Bereich (kein Abschneiden), 3: durch Matrix-Koeffizienten/Transfer-Charakteristiken definiert). --color-transfer-characteristics TID:n Die Charakteristiken der Farbton-Ubertragung. Gultige Werte und ihre Bedeutung sind: 0: reserviert, 1: ITU-R BT.709, 2: nicht spezifiziert, 3: reserviert, 4: Gamma-2.2-Kurve, 5: Gamma-2.8-Kurve, 6: SMPTE 170M, 7: SMPTE 240M, 8: linear, 9: logarithmisch, 10: logarithmisch Quadratwurzel, 11: IEC 61966-2-4, 12: ITU-R BT.1361 erweiterte Farbskala, 13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit, 15: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG) --color-primaries TID:n Setzt die Primarfarben des Videos. Gultige Werte und ihre Bedeutung sind: 0: reserviert, 1: ITU-R BT.709, 2: nicht spezifiziert, 3: reserviert, 4: ITU-R BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: JEDEC P22 phosphors --max-content-light TID:n Maximale Helligkeit eines einzelnen Pixels (maximales Lichtlevel des Inhalts) in Candela pro Quadratmeter (cd/m^2). Der Wert n sollte eine nicht negative ganze Zahl sein. --max-frame-light TID:n Maximaler Durchschnittswert fur das Lichtlevel eines vollen Bildes in Candela pro Quadratmeter (cd/m^2). Der Wert n sollte eine nicht negative ganze Zahl sein. --chromaticity-coordinates TID:rot-x,rot-y,grun-x,grun-y,blau-x,blau-y Setzt die Rot-/Grun-/Blau-Koordinaten fur Farbton & Sattigung, wie sie in CIE 1931 definiert werden. --white-color-coordinates TID:x,y Setzt die Koordinaten der weissen Farbe, wie sie in CIE 1931 definiert sind. --max-luminance TID:Fliesskommazahl Setzt die maximale Helligkeit in Candela pro Quadratmeter (cd/m^2). Der Wert sollte kleiner als 9999.99 sein. --min-luminance TID:Fliesskommazahl Setzt die minimale Helligkeit in Candela pro Quadratmeter (cd/m^2). Der Wert sollte kleiner als 999.9999 sein. --projection-type TID:Methode Setzt die benutzte Videoprojektionsmethode. Gultige Werte sind 0 (Rektangularprojektion), 1 (gleichseitige Rektangularprojektion), 2 (Wurfelprojektion) und 3 (Gitterprojektion). --projection-private TID:Daten Setzt private Daten, die nur zu einer bestimmten Projektion gehoren. Die Daten mussen als Hexadezimalzahlen mit oder ohne Prafix >>0x<<, mit oder ohne Leerzeichen angegeben werden. --projection-pose-yaw TID:Fliesskommazahl Gibt einen Gierwinkel zur Projektion an. --projection-pose-pitch TID:Fliesskommazahl Gibt einen Drehwinkel zur Projektion an. --projection-pose-roll TID:Fliesskommazahl Gibt einen Rollwinkel zur Projektion an. --field-order TID:n Setzt die Feldreihenfolge fur die Videospur mit der Spur-ID TID. Die Reihenfolge muss eine der folgenden Zahlen sein: 0: progressiv; 1: Halbbildverfahren mit oberem Feld zuerst angezeigt und oberem Feld zuerst gespeichert; 2: nicht spezifizierte Feldreihenfolge; 6: Halbbildverfahren mit unterem Feld zuerst angezeigt und unterem Feld zuerst gespeichert; 9: Halbbildverfahren mit unterem Feld zuerst angezeigt und oberem Feld zuerst gespeichert; 14: Halbbildverfahren mit oberem Feld zuerst angezeigt und unterem Feld zuerst gespeichert --stereo-mode TID:n|symbolischer-Name Setzt den Stereomodus fur die Videospur mit der Spur-ID TID. Der Modus kann entweder eine Zahl n zwischen 0 und 14 oder ein symbolischer Name sein. Alle gultigen Nummern & Namen konnen mit der Option --list-stereo-mdoes aufgelistet werden. Optionen, die nur fur Untertitelspuren gelten --sub-charset TID:Zeichensatz Setzt den Zeichensatz fur die Umwandlung nach UTF-8 fur UTF-8-Untertitel der angegebenen Spur-ID. Ist er nicht angegeben, wird der Zeichensatz von den aktuellen Locale-Einstellungen abgeleitet. Beachten Sie, dass fur Untertitel, die aus Matroska(TM)-Dateien oder Kate-Datenstromen stammen, kein Zeichensatz erforderlich ist, da diese immer in UTF-8 gespeichert werden. Ein Erklarung, wie mkvmerge(1) Zeichensatze umwandelt, finden Sie im Abschnitt uber Textdateien und Zeichensatze. Diese Option kann mehrfach fur eine Eingabedatei benutzt werden und gilt fur mehrere Spuren, indem jedesmal eine andere Spur-ID ausgewahlt wird. Weitere Optionen -i, --identify Dateiname Wird mkvmerge(1) veranlassen, die einzelne Datei eingehend zu untersuchen und ihren Typ, die in der Datei enthaltenen Spuren und ihre Spur-IDs zu melden. Falls diese Option benutzt wird, ist der Dateiname die einzige weitere erlaubte Option. Das fur die Ergebnisse benutze Ausgabeformat kann mit der Option --identification-format geandert werden. -J Dateiname Dies ist ein bequemer Alias fur "--identification-format json --identify Dateiname". -F, --identification-format Format Legt das Format fur die Ausgabe der Option --identify fest. Die folgenden Formate werden unterstutzt: text (das Standardformat, wenn diese Option nicht genutzt wird) und json. 1. Das Format text ist kurz und menschenlesbar. Es aus einer Zeile pro gefundenem Element (Container, Spuren, Anhange etc.). Dieses Format wurde nicht dafur entworfen, geparset zu werden. Die Ausgabe wird in die von mkvmerge(1) benutzte Sprache ubersetzt (siehe auch --ui-language). 2. Das Format json ist eine maschinenlesbares JSON-Reprasentation. Dieses Format folgt dem JSON-Schema, das in der folgenden Datei beschrieben wird: mkvmerge-identification-output-schema-v18.json[3] Alle Versionen des JSON-Schemas sind sowohl online als auch in den veroffentlichen Quellcodearchiven verfugbar. --probe-range-percentage Prozentsatz Dateitypen wie MPEG Programm- und Transportstrome (.vob, .m2ts) erfordern, dass eine gewisse Menge Daten untersucht werden, um alle Spuren zu erkennen, die in der Datei enthalten sind. Diese Menge ist standardmassig 0.3% der Quelldateigrosse bzw. 10 MB, je nachdem, welcher Werte hoher ist. Falls Spuren bekanntermassen enthalten sind aber nicht gefunden werden, so kann der zu untersuchende Prozentsatz hier geandert werden. Das Minimum von 10 MB ist fest eingebaut und kann nicht geandert werden. --list-audio-emphasis Listet alle gultigen Nummern & ihre entsprechenden symbolischen Namen fur die Option --audio-emphasis auf." --list-languages Fuhrt alle Sprachen und ihren ISO 639-2-Code auf, die mit der Option --language benutzt werden konnen. --list-stereo-modes Listet alle gultigen Nummern & ihre entsprechenden symbolischen Namen fur die Option --stereo-mode auf." -l, --list-types Fuhrt unterstutzte Eingabedateitypen auf. --priority Prioritat Setzt die Prozessprioritat, mit der mkvmerge(1) ausgefuhrt wird. Gultige Werte sind >>lowest<<, >>lower<<, >>normal<<, >>higher<< und >>highest<<. Falls nichts angegeben wurde, wird >>normal<< benutzt. Auf Unix-ahnlichen Systemen wird mkvmerge(1) die Funktion nice(2) verwenden. Daher kann man >>higher<< und >>highest<< nur mit erhohten Rechten nutzen. Auf Windows sind alle Werte unabhangig der Rechte nutzbar. Die Auswahl von >>lowest<< veranlasst mkvmerge(1) ausserdem, zusatzlich zur niedrigsten moglichen Prozessprioritat eine Leerlauf-E/A-Prioritat zu wahlen. --command-line-charset Zeichensatz Setzt den Zeichensatz, um auf der Befehlszeile angegebene Zeichenketten umzuwandeln. Voreinstellung ist der Zeichensatz der aktuellen Locale des Systems. Diese Einstellung gilt fur Argumente der folgenden Optionen: --title, --track-name und --attachment-description. --output-charset Zeichensatz Setzt den Zeichensatz, in den Zeichenketten zur Ausgabe umgewandelt werden. Voreinstellung ist der Zeichensatz der aktuellen Locale des Systems. -r, --redirect-output Dateiname Schreibt alle Nachrichten in die Datei Dateiname statt auf die Konsole. Obwohl dies einfach durch Ausgabeumleitung erledigt werden kann, gibt es Falle, in denen diese Option benotigt wird: wenn das Terminal die Ausgabe vor dem Schreiben in eine Datei neu auswertet. Der mit --output-charset gesetzte Zeichensatz wird dabei berucksichtigt. --flush-on-close Weist mkvmerge an, alle gepufferten Daten auf den Datenspeicher zu schreiben, wenn eine zum Schreiben geoffnete Datei geschlossen wird. Das kann benutzt werden, um Datenverlust bei Stromausfall vorzubeugen oder bestimmte Probleme im Betriebssystem oder Treibern zu vermeiden. Der Nachteil ist, dass das Multiplexen langer dauert, da mkvmerge vor dem Beenden wartet, bis alle Daten auf den Datenspeicher geschrieben wurden. Siehe Probleme #2469 und #2480 im MKVToolNix-Bugtracker fur eine tiefergehende Diskussion der Vor- und Nachteile. --ui-language Code Erzwingt, dass die Ubersetzungen fur die Sprache Code benutzt werden (z.B. >>de_DE<< fur die deutschen Ubersetzungen). Bei der Eingabe von >>list<< als Code gibt das Programm eine Liste der verfugbaren Ubersetzungen aus. --abort-on-warnings Weist das Programm an abzubrechen, nachdem die erste Warnung ausgegeben wurde. Der Ruckgabewert des Programms wird in dem Fall 1 sein. --deterministic Initialwert Aktiviert das Erzeugen von Byte fur Byte identischen Dateien, sofern die selbe Version von mkvmerge(1) mit den selben Quelldateien, den selben Optionen und dem selben Initialwert benutzt werden. Beachten Sie, dass das "Datum"-Segment-Informationen-Feld in diesem Modus nicht geschrieben wird. Der Initialwert kann eine beliebige Zeichenkette und muss keine Zahl sein. Das Ergebnis von Byte fur Byte identischen Dateien wird nur unter den folgenden Bedingungen garantiert: 1. Die selbe Version von mkvmerge(1), gebaut mit den selben Versionen von libEBML und libMatroska, wird benutzt. 2. Die Quelldateien sind Byte fur Byte identisch. 3. Die selben Kommandozeilenoptionen werden in der selben Reihenfolge benutzt (mit der expliziten Ausnahme der Option --output ...). Die Nutzung anderer Versionen von mkvmerge(1) oder andere Kommandozeilenoptionen kann ebenfalls zu einer Byte fur Byte identischen Datei fuhren, was aber nicht garantiert wird. --debug Thema Schaltet die Fehlersuche fur eine bestimmte Funktionalitat ein. Diese Option ist nur fur Entwickler nutzlich. --engage Funktionalitat Schaltet experimentelle Funktionalitaten ein. Eine Liste verfugbarer Funktionalitaten kann mit mkvmerge --engage list abgefragt werden. Diese Funktionalitaten sind nicht fur die Verwendung in Alltagssituationen gedacht. --gui-mode Schaltet den Modus fur graphische Benutzeroberflachen an. In diesem Modus konnen auf bestimmte Art formatierte Zeilen ausgegeben werden, die einem aufrufenden Programm mitteilen, was mkvmerge(1) gerade tut. Diese Nachrichten haben das folgende Format: '#GUI#Nachricht'. Der Nachricht folgen potenziell Schlussel/Wert-Paare wie z.B. '#GUI#Nachricht#schluessel1=wert1#schluessel2=wert2...'. Weder die Nachricht selber noch die Schlussel werden jemals ubersetzt sondern immer in Englisch ausgegeben. @Optionsdatei.json Liest zusatzliche Befehlszeilenargumente aus der Datei Optionsdatei. Weitere Informationen finden Sie im Abschnitt uber Optionsdateien. --capabilities Fuhrt Informationen uber optionale Funktionalitaten auf, die einkompiliert wurden, und beendet sich. Die erste ausgegebene Zeile wird die Versionsinformation sein. Alle folgenden Zeilen enthalten genau ein Wort, dessen Vorhandensein anzeigt, dass die Funktionalitat einkompiliert wurde. Diese Funktionalitaten sind: o >>FLAC<< - Lesen roher FLAC-Dateien und Handhabung von FLAC-Spuren in anderen Containern, z.B. Ogg(TM) oder Matroska(TM). -h, --help Zeigt Benutzungsinformationen und beendet sich. -V, --version Zeigt Versionsinformationen und beendet sich. AUFRUF Fur jede Datei kann auswahlt werden, welche Spuren mkvmerge(1) nehmen soll. Sie alle werden in eine mit -o angegebene Datei abgelegt. Eine Liste bekannter (und unterstutzter) Quellformate kann mit der Option -l abgefragt werden. Wichtig Die Reihenfolge der Befehlszeilenoptionen ist wichtig. Bitte lesen Sie den Abschnitt >>Reihenfolge der Optionen<<, falls sie ein neuer Nutzer des Programms sind. REIHENFOLGE DER OPTIONEN Die Reihenfolge, in der die Optionen eingegeben werden, ist fur einige Optionen wichtig. Optionen fallen unter zwei Kategorien: 1. Optionen, die das ganze Programm beeinflussen und nicht an irgendeine Eingabedatei gebunden sind. Dies sind unter anderem --command-line-charset, --output oder --title. Diese konnen uberall auf der Befehlszeile erscheinen. 2. Optionen, die eine einzelne Eingabedatei oder eine einzelne Spur in einer Eingabedatei beeinflussen. Diese Optionen gelten fur die auf der Befehlszeile folgende Datei. Alle Optionen, die fur dieselbe Eingabedatei (oder fur Spuren derselben Eingabedatei) gelten, konnen in jeder Reihenfolge geschrieben werden, solange sie alle vor dem Namen dieser Eingabedatei erschienen. Beispiele fur Optionen, die fur eine Eingabedatei gelten, sind --no-chapters oder --chapter-charset. Beispiele fur Optionen, die fur eine einzelne Spur gelten, sind --default-duration oder --language. Die Optionen werden von links nach rechts verarbeitet. Falls eine Option mehrfach innerhalb desselben Geltungsbereichs erscheint, dann wird das letzte Auftreten benutzt. Daher wird der Titel im folgenden Beispiel auf >>Etwas anderes<< gesetzt: $ mkvmerge -o Ausgabe.mkv --title 'Dies und das' Eingabe.avi --title 'Etwas anderes' Das folgende Beispiel zeigt die zweimalige Verwendung der Option --language, die in Ordnung ist, da sie in unterschiedlichen Geltungsbereichen liegen. Obwohl sie fur dieselbe Spur-ID gelten, gelten sie fur verschiedene Eingabedateien und haben daher unterschiedliche Geltungsbereiche: $ mkvmerge -o Ausgabe.mkv --language 0:fre francais.ogg --language 0:deu deutsch.ogg BEISPIELE Angenommen, Sie haben eine Datei namens MeinFilm.avi und die Tonspur in einer separaten Datei, z.B. >>MeinFilm.wav<<. Als erstes mochten Sie den Ton in OggVorbis(TM) codieren: $ oggenc -q4 -oMeinFilm.ogg MeinFilm.wav Nach ein paar Minuten konnen Sie Video und Ton kombinieren: $ mkvmerge -o MeinFilm-mit-Ton.mkv MeinFilm.avi MeinFilm.ogg Falls Ihr AVI bereits eine Tonspur enthalt, dann wird sie ebenfalls kopiert (wenn mkvmerge(1) das Audioformat unterstutzt). Um dies zu verhindern, tun Sie einfach Folgendes: $ mkvmerge -o MeinFilm-mit-Ton.mkv -A MeinFilm.avi MeinFilm.ogg Nach einigen Minuten Uberlegung rippen Sie eine andere Tonspur, z.B. die Kommentare des Regisseurs oder eine weitere Sprache fur MeinFilm-fugt-Ton-hinzu.wav. Codieren Sie ihn erneut und kombinieren Sie ihn mit der anderen Datei: $ oggenc -q4 -oMeinFilm-fugt-Ton-hinzu.ogg MeinFilm-fugt-Ton-hinzu.wav $ mkvmerge -o MM-komplett.mkv MeinFilm-mit-Ton.mkv MeinFilm-fugt-Ton-hinzu.ogg Dasselbe Ergegnis kann erzielt werden durch $ mkvmerge -o MM-komplett.mkv -A MeinFilm.avi MeinFilm.ogg MeinFilm-fugt-Ton-hinzu.ogg Werfen Sie nun mplayer(TM) an und geniessen Sie. Falls Sie mehrere Tonspuren (oder sogar Videospuren) haben, dann konnen Sie mplayer(TM) mit den Optionen >>-vid und >>-aid<< sagen, welche Spuren er abspielen soll. Diese sind nullbasiert und unterscheiden nicht zwischen Video und Ton. Falls Sie eine synchronisierte Tonspur benotigen, konnen Sie dies einfach erledigen. Finden Sie zuerst die Spur-ID der Vorbis-Spur heraus mittels $ mkvmerge --identify Unsynchron.ogg Nun konnen Sie diese ID in der folgenden Befehlszeile benutzen: $ mkvmerge -o Synchron.mkv -A Quelle.avi -y 12345:200 Unsynchron.ogg Dies wurde 200 ms Stille an den Anfang der Tonspur mit der ID 12345, die aus >>Unsynchron.ogg<< stammt, hinzufugen. Einige Filme starten korrekt synchronisiert, verlieren jedoch langsam ihre Synchronisierung. Fur diese Art von Filmen konnen Sie einen Verzogerungsfaktor angeben, der fur alle Zeitstempel gilt - es werden keine Daten hinzugefugt oder entfernt. Falls Sie diesen Faktor zu gross oder zu klein wahlen, erhalten Sie schlechte Ergebnisse. Ein Beispiel war eine umcodierte Episode, die am Ende des 77340 Bilder langen Films um 0,2 Sekunden von der Synchronizitat abwich. Bei 29,97 BpS entsprechen 0,2 Sekunden ungefahr 6 Bildern. Also machte ich Folgendes: $ mkvmerge -o Synchron.mkv -y 23456:0,77346/77340 Unsynchron.mkv Das Resultat war gut. Die Synchronisationsoptionen konnen auf die gleiche Weise auch fur Untertitel benutzt werden. Fur Textuntertitel konnen Sie entweder irgendwelche Windows-Software (wie SubRipper(TM)) oder das Paket subrip(TM) nehmen, das Sie in den Quellen von transcode(1) im Verzeichnis >>contrib/subrip<< finden. Allgemein lauft dies so ab: 1. Extrahieren eines rohen Untertiteldatenstroms aus der Quelle: $ tccat -i /Pfad/zur/kopierten/DVD/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o MeinFilm 2. Umwandlung der resultierenden PGM-Bilder in Text mit Gocr: $ pgm2txt MeinFilm 3. Rechtschreibprufung der resultierenden Textdateien: $ ispell -d american *txt 4. Umwandlung der Textdateien in eine SRT-Datei: $ srttool -s -w -i MeinFilm.srtx -o MeinFilm.srt Die resultierende Datei kann als weitere Eingabedatei fur mkvmerge(1) benutzt werden: $ mkvmerge -o MeinFilm.mkv MeinFilm.avi MeinFilm.srt Falls Sie die Sprache fur eine gegebene Spur angeben mochten, geht dies einfach. Finden Sie zuerst den ISO 639-2-Sprachcode Ihrer Sprache heraus. mkvmerge(1) kann all diese Codes fur Sie auffuhren: $ mkvmerge --list-languages Durchsuchen Sie die Liste nach den Sprachen, die Sie benotigen. Angenommen, Sie haben zwei Tonspuren in eine Matroska(TM)-Datei abgelegt, mochten ihre Sprachcodes setzen und wollen, dass ihre Spur-IDs 2 und 3 sind. Dies konnen Sie wie folgt erreichen: $ mkvmerge -o mit-Sprachcodes.mkv --language 2:ger --language 3:dut ohne_Sprachcodes.mkv Wie Sie sehen, konnen Sie den Schalter --language mehrfach verwenden. Vielleicht wollen Sie auch, dass das Abspielprogramm die niederlandische Sprache als Standardsprache verwendet. Sie haben ausserdem zusatzliche Untertitel, z.B. auf Englisch und Franzosisch und mochten, dass das Abspielprogramm sie standardmassig auf Franzosisch anzeigt. Dies konnen Sie wie folgt erreichen: $ mkvmerge -o mit-Sprachcodes.mkv --language 2:ger --language 3:dut --default-track-flag 3 ohne-Sprachcodes.mkv --language 0:eng english.srt --default-track-flag 0 --language 0:fre french.srt Falls Sie in der Ausgabe von mkvinfo(1) nicht die Sprache oder die Standardspurschalter sehen, die Sie angegeben haben, dann lesen Sie bitte den Abschnitt uber Vorgabewerte. Schalten Sie die Komprimierung fur eine Eingabedatei aus. $ mkvmerge -o Unkomprimiert.mkv --compression -1:none MeinFilm.avi --compression -1:none MeinFilm.srt SPUR-IDS Normale Spur-IDs Einige der Optionen fur mkvmerge(1) benotigen eine Spur-ID als Angabe, fur welche Spur sie gelten. Diese Spur-IDs werden durch die Leseprogramme beim demuxen (Trennen der Datenstrome) der aktuellen Datei oder wenn mkvmerge(1) mit der Option --identify aufgerufen wird, ausgegeben. Ein Beispiel fur einer derartige Ausgabe: $ mkvmerge -i v.mkv Datei >>v.mkv<<: Container: Matroska(TM) Spur-ID 0: Video (V_MS/VFW/FOURCC, DIV3) Spur-ID 1: Ton (A_MPEG/L3) Verwechseln Sie nicht die Spur-IDs, die den Spuren zugewiesen sind, die in der Ausgabe-MKV-Datei abgelegt wurden mit den Spur-IDs der Eingabedateien. Nur die Spur-IDs der Eingabedateien werden fur Optionen benutzt, die diese Werte benotigen. Beachten Sie auch, dass jede Eingabedatei ihre eigene Gruppe von Spur-IDs hat. Daher andert sich die Spur-ID fur die Datei >>Datei1.ext<<, die von >>mkvmerge --identify<< gemeldet wurde, nicht, unabhangig davon, wie viele andere Eingabedateien es gibt oder an welcher Stelle >>Datei1.ext<< benutzt wird. Spur-IDs werden wie folgt zugeteilt: o AVI-Dateien: Die Videospur hat die ID 0. Die Tonspuren bekommen IDs in aufsteigender Reihenfolge, beginnend bei 1. o AAC-, AC-3-, MP3-, SRT- und WAV-Dateien: Die einzige >>Spur<< der Datei erhalt die ID 0. o Die meisten anderen Dateien: Die Spur-IDs werden in der Reihenfolge zugeteilt, in der die Spuren in der Datei gefunden werden, beginnend bei 0. Die Optionen, die die Spur-IDs benutzen, enthalten in der Beschreibung >>TID<<. Die folgenden Optionen verwenden die Spur-IDs ebenfalls: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks und --track-tags. Spezielle Spur-IDs Es gibt mehrere IDs, die eine spezielle Bedeutung haben und nicht in der Ausgabe wahrend der Identifikation auftauchen. Die spezielle Spur-ID >>-1<< ist ein Platzhalter und wendet den angegebenen Schalter auf alle Spuren an, die aus einer Eingabedatei gelesen werden. Die spezielle Spur-ID >>-2<< bezieht sich auf die Kapitel einer Quelldatei. Momentan unterstutzt nur die Option --sync diese spezielle ID. Die Option --chapter-sync ... kann alternativ zu --sync -2:... benutzt werden. UMGANG MIT SPRACHEN Matroska(TM) unterstutzt zwei unterschiedliche Elementtypen fur Sprachen: das veraltete "Language"-Element, das Codes nach ISO 639-2 alpha 3 enthalt, und neue "LanguageIETF"-Elemente, die IETF BCP 47 Sprachelemente enthalten. Alle von mkvmerge(1) Optionen, die eine Sprache akzeptieren, akzeptieren BCP 47 Sprachelemente. mkvmerge(1) leitet die Werte fur veraltete "Language"-Elemente von den BCP 47-Sprachelementen ab, wann immer das moglich ist. Bei Dateiidentifizierung im JSON-Modus werden existierende "LanguageIETF"-Spurkopfelemente als Spureigenschaft language_ietf ausgegeben. Beim Schreiben einer Datei schreibt mkvmerge(1) immer die Elemente "LanguageIETF", "ChapLanguageIETF" und "TagLanguageIETF" (die letzten beiden nur, wenn Kapitel respektive Tags geschrieben werden). Zusatzlich zu diesen Elementen werden auch die dazugehorigen veralteten Elemente geschrieben. Sie werden auf den Wert des ISO 639-2-Anteils des BCP 47-Sprachelements gesetzt. Beispielsweise: wenn die Spursprache auf sr-Cyrl-RS gesetzt wird, wird "LanguageIETF" auf sr-Cyrl-RS gesetzt und das veraltete "Language" auf srp. Beim Lesen existierender Dateien (Matroska-Dateien, XML-Kapitel- oder -Tag-Dateien etc.), die bereits "...LanguageIETF"-Elemente enthalten, werden die existierenden Werte beibehalten. Andernfalls werden "...LanguageIETF"-Elemente basierend auf Kommandozeilenoptionen und existierenden, veralteten "...Language"-Elementen hinzugefugt. Das Erzeugen der neuen Elemente kann mit der Kommandozeilenoption --disable-language-ietf vollstandig deaktiviert werden. Sie wirkt sich auf alle neuen Sprachelemente aus. Sie konnen die angewendete Normalisierungsmethode, die auf erweiterte Sprach-Unter-Tags angewendet wird, mit der --normalize-language-ietf auswahlen. UMWANDLUNGEN VON TEXTDATEIEN UND ZEICHENSATZEN Anmerkung Dieser Abschnitt gilt fur alle Programme in MKVToolNix, wenn auch nur von mkvmerge(1) die Rede ist. Einleitung Jedweder Text in einer Matroska(TM)-Datei wird in UTF-8 codiert. Das bedeutet, dass mkvmerge(1) jede Textdatei, die es liest, ebenso wie jeden auf der Befehlszeile angegebenen Text, von einem Zeichensatz nach UTF-8 umwandeln muss. Im Umkehrschluss bedeutet das auch, dass die Ausgaben von mkvmerge(1) von UTF-8 in diesen Zeichensatz zuruck umgewandelt werden mussen, z.B. falls eine nicht englische Ubersetzung mit --ui-language benutzt wird oder fur einen Text, der aus einer Matroska(TM)-Datei stammt. mkvmerge(1) erledigt dies automatisch, basierend auf dem Vorhandensein einer Byte-Reihenfolgenmarkierung, kurz BOM (Byte Order Marker) oder der aktuellen Locale des Systems. Wie der Zeichensatz von der Locale geschlussfolgert wird, hangt vom Betriebssystem ab, auf dem mkvmerge(1) lauft. Byte-Reihenfolge-Markierungen (engl. BOM) Textdateien, die mit einem BOM beginnen, sind bereits in einer Erscheinungsform von UTF codiert. mkvmerge(1) untersutzt die folgenden funf Modi: UTF-8, UTF-16 Little und Big Endian sowie UTF-32 Little- und Big Endian. Textdateien mit einem BOM werden automatisch in UTF-8 umgewandelt. Alle Parameter, die andernfalls den Zeichensatz einer solchen Datei andern wurden (z.B. --sub-charset), werden stillschweigend irgnoriert. Linux und Unixoide Betriebssysteme inklusive macOS Auf UNIX-artigen Systemen benutzt mkvmerge(1) den Systemaufruf setlocale(3), der wiederum die Umgebungsvariablen LANG, LC_ALL und LC_CYPE verwendet. Der resultierende Zeichensatz stammt oft aus der UTF-8- oder der ISO-8859-*-Familie und wird fur alle Textdateitransaktionen und fur das Codieren aller Zeichenketten auf der Befehlszeile, sowie die Ausgabe an die Konsole benutzt. Windows Unter Windows wird der fur die Konvertierung von Textdateien benutzte Zeichensatz durch einen Aufruf der Systemfunktion GetACP() ermittelt. Das Auslesen der Kommandozeile geschieht mit der Funktion GetCommandLineW(), die bereits eine Unicode-Zeichenkette zuruckliefert. Deshalb wird die Option --command-line-charset unter Windows ignoriert. Die Konsolenausgabe umfasst drei Szenarien: 1. Falls die Ausgabe mittels der Option --redirect-output umgeleitet wurde, so ist der Zeichensatz UTF-8. Dies kann mit der Option --output-charset geandert werden. 2. Falls die Ausgabe durch cmd.exe selber umgeleitet wurde, wie z.B. mit mkvinfo file.mkv > info.txt, dann wird immer der Zeichensatz UTF-8 benutzt, was nicht geandert werden kann. 3. Wenn hingegen direkt auf die Konsole geschrieben wird, so wird die Windows-Funktion WriteConsoleW() dafur benutzt, und die Option --output-charset wird ignoriert. Die Konsole sollte in der Lage sein, alle Unicode-Zeichen auszugeben, fur deren entsprechende Sprache Sprachunterstutzung installiert ist (z.B. konnten chinesische Zeichen in englischen Windows-Versionen nicht ausgegeben werden). Kommandozeilenoptionen Die folgenden Optionen, die die Angabe des Zeichensatzes ermoglichen, existieren: o --sub-charset fur Textuntertiteldateien und -spuren, die in Containerformaten gespeichert sind, deren Zeichensatz nicht eindeutig bestimmt werden konnen (z.B. OGG-Dateien), o --chapter-charset fur Kapiteltextdateien, sowie Kapitel- und Dateititel, die in Containerformaten gespeichert sind, deren Zeichensatz nicht eindeutig bestimmt werden kann (z.B. Ogg-Dateien fur Kapitelinformationen, Spur- und Dateititel etc.; MP4-Dateien fur Kapitelinformationen), o --command-line-charset fur alle Zeichenketten auf der Befehlszeile, o --output-charset fur alle auf die Konsole oder in eine Datei geschriebenen Zeichenketten, falls die Ausgabe mit der Option --redirect-output umgeleitet wurde. Auf anderen Systemen als Windows ist der Standardzeichensatz derjenige, den das System aktuell verwendet. Unter Windows ist der Standard sowohl fur die Umleitung mittels --redirect-output als auch durch cmd.exe selber, e.g. mkvinfo file.mkv > info.txt, der Zeichensatz UTF-8. OPTIONSDATEIEN Ein Optionsdatei ist eine Datei aus der mkvmerge(1) zusatzliche Befehlszeilenargumente lesen kann. Diese kann benutzt werden, um bestimmte Beschrankungen der Shell oder des Betriebssystems wie eine begrenzte Lange der Befehlszeile zu umgehen, wenn externe Programme ausgefuhrt werden. Eine Options-Datei enthalt Daten im JSON-Format. Ihr Inhalt muss aus einem gultigen JSON-Array bestehen, das ausschliesslich JSON-Zeichenketten enthalt. Der Kodierung der Datei muss UTF-8 sein. Die Datei sollte nicht mit einer Byte-Reihenfolgemarkierung (BOM) beginnen; tut sie es aber doch, so wird die Markierung ubersprungen. Die Regeln fur das Maskieren spezieller Zeichen innerhalb der JSON-Daten sind diejenigen, die in der offiziellen JSON-Spezifikation (RFC 7159[4]) genannt werden. Der Name der Optionsdatei selber muss auf der Kommandozeile mit einem vorangestellten >>@<<-Zeichen angegeben werden. Die Befehlszeile >>mkvmerge -o "Meine Datei.mkv" -A "ein Film.avi" Ton.ogg<< kann in die folgende JSON-Optionsdatei mit z.B. dem Namen 'Optionen.json' umgewandelt werden: [ "-o", "c:\\Matroska\\meine Datei.mkv", "--title", "#65", "-A", "ein Film.avi", "Ton.ogg" ] Der entsprechende Befehl ware dann >>mkvmerge @Optionen.json<<. VERKNUPFEN VON DATEIEN Matroska(TM) unterstutzt das Verknupfen von Dateien, was einfach heisst, dass eine bestimmte Datei der Vorganger oder Nachfolger der aktuellen Datei ist. Genauer ausgedruckt werden die Dateien nicht wirklich verknupft, sondern die Matroska(TM)-Segmente. Da die meisten Dateien wahrscheinlich nur ein Matroska(TM)-Segment enthalten werden, benutzen die folgenden Erklarungen den Begriff >>Verknupfen von Dateien<<, obwohl es eigentlich >>Verknupfen von Segmenten<< heissen musste. Jedes Segment wird durch eine eindeutige 128 Bit lange Segment-UID bezeichnet. Diese UID wird automatisch von mkvmerge(1) erzeugt. Das Verknupfen wird in erster Linie durch Ablegen der Segment-UIDs (kurz: SID) der vorherigen/nachsten Datei in die Segmentkopfdateninformationen erledigt. mkvinfo(1) gibt diese SIDs aus, falls es sie findet. Falls eine Datei in mehrere kleinere unterteilt wurde und Verknupfen verwendet wird, dann werden die Zeitstempel nicht wieder bei 0 beginnen. Sie werden dort fortfahren, wo die letzte Datei aufhorte. Auf diese Weise wird auch dann die absolute Zeit vorgehalten, wenn die vorhergehenden Dateien nicht verfugbar sind (z.B. beim Ubertragen). Falls kein Verknupfen verwendet wird, dann sollten die Zeitstempel fur jede Datei bei 0 beginnen. Standardmassig verwendet mkvmerge(1) kein Verknupfen von Dateien. Falls Sie es einschalten mochten, konnen Sie dies mit der Option --link einschalten. Diese Option ist nur nutzlich, falls das Aufteilen ebenfalls aktiviert ist. Unabhangig davon, ob Aufteilung aktiv ist oder nicht, kann man mkvmerge(1) mitteilen, dass die erstellten Dateien mit speziellen SIDs verknupft werden sollen. Dies kann mit den Optionen --link-to-previous und --link-to-next erreicht werden. Diese Optionen akzeptieren eine Segment-SID in dem von mkvinfo(1) ausgegebenen Format: 16 hexadezimalen Zahlen zwischen 0x00 und 0xff, denen jeweils >>0x<< vorangestellt wurde, z.B. >>0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93<<. Alternativ kann eine kurzere Form benutzt werden: 16 hexadezimalen Zahlen zwischen 0x00 und 0xff ohne das vorangestellte >>0x<< und ohne die Leerzeichen, z.B. >>41da7366d9cfb21eae78ebb45ecab393<<. Falls Aufteilen benutzt wird, dann wird die erste Datei mit der durch --link-to-previous und die letzte mit der durch --link-to-next angegebenen SID verknupft. Falls kein Aufteilen benutzt wird, dann wird die einzige Ausgabedatei mit beiden SIDs verknupft. VORGABEWERTE Die Matroska(TM)-Spezifikation legt fest, dass einige Elemente Vorgabewerte haben. Normalerweise wird ein Element, um Platz zu sparen, nicht in die Datei geschrieben, falls sein Wert dem Vorgabewert entspricht. Die Elemente, die in der Ausgabe von mkvinfo(1) vielleicht vermisst werden, sind Sprache und Standardspurschalter. Der Vorgabewert fur die Sprache ist Englisch (>>eng<<) und der Vorgabewert fur den Standardspurschalter ist true. Daher wird eine Spur, falls Sie --language 0:eng dafur verwenden, nicht in der Ausgabe von mkvinfo(1) erscheinen. ANHANGE Vielleicht wollen Sie ein paar Fotos zusammen mit Ihrer Matroska(TM)-Datei aufbewahren oder Sie benutzen SSA-Untertitel und benotigen eine bestimmte TrueType(TM)-Schrift, die wirklich selten vorkommt. In diesen Fallen konnen Sie die Dateien an die Matroska(TM)-Datei anhangen. Sie werden nicht nur an die Datei angehangt, sondern darin eingebettet. Ein Abspielprogramm kann dann diese Dateien (im Fall mit den Fotos) anzeigen oder sie zum Rendern der Untertitel (im Fall mit der TrueType(TM)-Schrift) verwenden. Hier nun ein Beispiel, wie eine Foto und eine TrueType(TM)-Schrift an die Ausgabedatei angehangt werden: $ mkvmerge -o Ausgabe.mkv -A Video.avi Ton.ogg \ --attachment-description "Die Band und ich hinter der Buhne bei einer kleinen Zusammenkunft" \ --attachment-mime-type image/jpeg \ --attach-file Die_Band_und_ich.jpg \ --attachment-description "Die wirkliche seltene und unglaublich gutaussehende Schrift" \ --attachment-mime-type application/octet-stream \ --attach-file wirkliche_coole_Schrift.ttf Falls eine Matroska(TM)-Datei, die Anhange enthalt, als Eingabedatei benutzt wird, dann wird mkvmerge(1) die Anhange in die neue Datei kopieren. Die Auswahl, welche Anhange kopiert werden, kann mit den Optionen --attachments und --no-attachments geandert werden. KAPITEL Das Matroska(TM)-Kapitelsystem ist leistungsfahiger als das alte bekannte System, das von OGM-Dateien benutzt wird. Die vollstandige Spezifikation ist auf der Matroska(TM)-Website[1] zu finden. mkvmerge(1) unterstutzt als Eingabe zwei Arten von Kapiteldateien. Das erste Format, >>einfaches Kapitelformat<< genannt, ist dasselbe, das die OGM-Werkzeuge erwarten. Das zweite Format ist ein XML-basiertes Kapitelformat, das alle Kapitelfunktionalitaten von Matroska(TM) unterstutzt. Abgesehen von dedizierten Kapiteldateien kann mkvmerge(1) Kapitel auch aus anderen Dateiformaten lesen (z.B. MP4, Ogg, Blu-rays oder DVDs). Das einfache Kapitelformat Dieses Format besteht aus Zeilenpaaren, die mit >>CHAPTERxx=<< beziehungsweise >>CHAPTERxxNAME=<< beginnen. Das erste enthalt den Startzeitstempel, wahrend das zweite den Titel enthalt. Hier ein Beispiel: CHAPTER01=00:00:00.000 CHAPTER01NAME=Einleitung CHAPTER02=00:02:30.000 CHAPTER02NAME=Baby bereitet sich vor zu rocken CHAPTER03=00:02:42.300 CHAPTER03NAME=Baby stellt das Haus auf den Kopf mkvmerge(1) wird jedes Zeilenpaar in ein Matroska(TM)-ChapterAtom umwandeln. Es setzt keine ChapterTrackNumber, was bedeutet, dass alle Kapitel fur alle Spuren in der Datei gelten. Falls dies eine Textdatei ist, muss moglicherweise eine Umwandlung des Zeichensatzes durchgefuhrt werden. Eine Erklarung, wie mkvmerge(1) Zeichensatze umwandelt, finden Sie im Abschnitt uber Textdateien und Zeichensatze. Das XML-basierte Kapitelformat Das XML-basierte Kapitelformat sieht wie in diesem Beispiel aus: 00:00:30.000 00:01:20.000 Ein kurzes Kapitel eng 00:00:46.000 00:01:10.000 Ein Teil dieses kurzen Kapitels eng Mit diesem Format sind drei Dinge moglich, die mit dem einfachen Kapitelformat nicht moglich sind: 1. Der Zeitstempel fur das Ende des Kapitels kann gesetzt werden. 2. Kapitel konnen verschachtelt werden. 3. Die Sprache und das Land konnen gesetzt werden. Die Mkvtoolnix-Distribution enthalt einige Beispieldateien im Unterverzeichnis doc, die als Basis benutzt werden konnen. Im Folgenden werden unterstutzte XML-Tags, ihre Datentypen und, falls zweckmassig, der gultige Bereich fur ihre Werte aufgefuhrt: Chapters (master) EditionEntry (master) EditionUID (unsigned integer, valid range: 1 <= value) EditionFlagHidden (unsigned integer, valid range: 0 <= value <= 1) EditionFlagDefault (unsigned integer, valid range: 0 <= value <= 1) EditionFlagOrdered (unsigned integer, valid range: 0 <= value <= 1) ChapterAtom (master) ChapterAtom (master) ChapterUID (unsigned integer, valid range: 1 <= value) ChapterTimeStart (unsigned integer) ChapterTimeEnd (unsigned integer) ChapterFlagHidden (unsigned integer, valid range: 0 <= value <= 1) ChapterFlagEnabled (unsigned integer, valid range: 0 <= value <= 1) ChapterSegmentUID (binary, valid range: 1 <= length in bytes) ChapterSegmentEditionUID (unsigned integer, valid range: 1 <= value) ChapterPhysicalEquiv (unsigned integer) ChapterTrack (master) ChapterTrackNumber (unsigned integer, valid range: 1 <= value) ChapterDisplay (master) ChapterString (UTF-8 string) ChapterLanguage (UTF-8 string) ChapterCountry (UTF-8 string) ChapterProcess (master) ChapterProcessCodecID (unsigned integer) ChapterProcessPrivate (binary) ChapterProcessCommand (master) ChapterProcessTime (unsigned integer) ChapterProcessData (binary) Kapitel von Blu-rays lesen mkvmerge(1) kann Kapitel aus unverschlusselten Blu-rays lesen. Dafur konnen Sie den Pfad zu einer der MPLS-Abspiellisten mit dem Parameter --chapters angeben. Beispiel: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls Kapitel von DVDs lesen Wenn MKVToolNix mit der libdvdread(TM)-Bibliothek compiliert wurde, kann mkvmerge(1) Kapitel von DVDs lesen. Dafur konnen Sie den Pfad zu einer der Dateien oder Ordner auf der DVD mit dem Parameter --chapters angeben. Da DVDs mehr als einen Titel enthalten konnen und jeder Titel seinen eigenen Satz an Kapitel enthalt, konnen Sie einen Doppelpunkt und die gewunschte Titelnummer an das Ende des Dateinamenarguments anhangen. Die Titelnummer ist standardmassig 1. Beispiel: --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2 Allgemeine Hinweise Beim Aufteilen von Dateien wird mkvmerge(1) die Kapitel ebenfalls korrekt anpassen. Dies bedeutet, dass jede Datei nur die Kapiteleintrage beinhaltet, die fur die gelten, und dass die Zeitstempel versetzt werden, damit sie zu den neuen Zeitstempeln jeder Ausgabedatei passen. mkvmerge(1) kann Kapitel aus Matroska(TM)-Quelldateien kopieren, es sei denn, dies wurde explizit mit der Option --no-chapters deaktiviert. Die Kapitel aus allen Quellen (Matroska(TM)-Dateien, Ogg-Dateien, MP4-Dateien, Kapiteltextdateien) werden ublicherweise nicht zusammengefugt, landen aber in separaten ChapterEditions. Nur falls Kapitel aus mehreren Matroska(TM)- oder XML-Dateien gelesen werden, die dieselbe Fassung von UIDs gemeinsam benutzen, werden Kapitel in eine einzige ChapterEdition-Datei zusammengefugt. Falls ein derartiges Zusammenfugen in anderen Situationen ebenfalls erwunscht ist, dann mussen zuerst die Kapitel aus allen Quellen mit mkvextract(1) extrahiert und die XML-Dateien manuell zusammenfugt werden, bevor sie hinterher gemultiplext werden konnen. TAGS Einleitung Matroska(TM)s Tag-System ist den von anderen Containern verwendeten Systemen ahnlich: ein Satz aus SCHLUSSEL=WERT-Paaren. In Matroska(TM) konnen diese Tags jedoch ebenfalls verschachtelt werden, und sowohl SCHLUSSEL als auch WERT sind Elemente fur sich. Die Beispieldatei example-tags-2.xml zeigt, wie dieses System benutzt wird. Geltungsbereich der Tags Matroska(TM)-Tags gelten nicht automatisch fur die gesamte Datei. Sie konnen, aber sie konnen auch fur unterschiedliche Teile der Datei gelten: fur eine oder mehrere Spuren, fur ein oder mehrere Kapitel oder sogar fur eine Kombination von beiden. Die Matroska(TM)-Spezifikation[5] liefert weitere Einzelheiten zu diesem Umstand. Eine wichtige Tatsache ist, dass Tags mit Spuren oder Kapiteln anhand des Tag-Elements Targets verknupft werden und dass die fur diese Verknupfungen verwendeten UIDs nicht die sonst uberall von mkvmerge(1) benutzten Spur-IDs sind. Stattdessen sind die verwendeten Nummern die UIDs, die mkvmerge(1) automatisch berechnet (falls die Spur aus einer Datei stammt, die ein anderes Format als Matroska(TM) hat) oder die aus der Quelldatei kopiert wurden, falls die Quelldatei der Spur eine Matroska(TM)-Datei ist. Daher ist es schwierig zu wissen, welche UIDs in dem Tag benutzt werden sollen, bevor die Datei an mkvmerge(1) ubergeben wurde. mkvmerge(1) kennt zwei Optionen, mit denen Sie Matroska(TM)-Dateien Tags hinzufugen konnen: die Optionen --global-tags und --tags. Der Unterschied besteht darin, dass erstere, --global-tags, dafur sorgen wird, dass die Tags fur die gesamte Datei gelten, indem diese oben erwahnten Targets-Elemente entfernt werden. Die letztere Option, --tags, fugt automatisch die UID hinzu, die mkvmerge(1) fur den mit dem TID-Teil der Option --tags angegebenen Tag erzeugt. Beispiel Sagen wir mal, Sie mochten einer aus einem AVI gelesenen Videospur Tags hinzufugen. mkvmerge --identify Datei.avi teilt Ihnen mit, dass die ID der Videospur 0 ist (verwechseln Sie diese ID nicht mit der UID). Deshalb erstellen Sie Ihre Tag-Datei, lassen alle Targets-Elemente weg und rufen mkvmerge(1) auf: $ mkvmerge -o Datei.mkv --tags 0:Tags.xml Datei.avi Format der Tag-Datei mkvmerge(1) unterstutzt ein XML-basiertes Tag-Dateifomat. Das Format ist sehr eng an die Matroska(TM)-Spezifikation[5] angelehnt. Sowohl die Binar- als auch die Quelldistribution von MKVToolNix bringen eine Musterdatei namens example-tags-2.xml mit, die einfach alle bekannten Tags auffuhrt und als Basis fur Tag-Dateien in der Praxis benutzt werden kann. Die Grundlagen sind: o Das ausserste Element muss sein. o Ein logischer Tag ist innerhalb eines Paares von -XML-Tags enthalten. o Leerzeichen direkt vor und hinter Tag-Inhalt werden ignoriert. Datentypen Das neue Tag-System vom Matroska(TM) kennt nur zwei Datentypen, eine UTF-8-Zeichenkette und einen binaren Typ. Erstere wird fur den Namen und das Element des Tags benutzt, wahrend der binare Typ fur das Element verwendet wird. Da die binaren Daten selbst nicht in eine XML-Datei passen wurden, unterstutzt mkvmerge(1) zwei weitere Methoden zum Speichern binarer Daten. Falls der Inhalt eines XML-Tags mit einem >>@<< beginnt, wird der folgende Text als ein Dateiname angesehen. Der zugehorige Inhalt der Datei wird in das Matroska(TM)-Element kopiert. Andernfalls wird erwartet, dass die Daten Base64-codiert vorliegen. Dies ist eine Codierung, die binare Daten in einen eingeschrankten Satz von ASCII-Zeichen umwandelt und z.B. in E-Mail-Programmen benutzt wird. mkvextract(1) wird fur binare Elemente Base64-codierte Daten ausgeben. Das missbilligte Tag-System kennt ein paar weitere Datentypen, die in der offiziellen Matroska(TM)-Tag-Spezifikation zu finden sind. Da mkvmerge(1) dieses System nicht mehr unterstutzt, werden diese Typen hier nicht beschrieben. Bekannte Tags des XML-Dateiformats Im Folgenden werden unterstutzte XML-Tags, ihre Datentypen und, falls zweckmassig, der gultige Bereich fur ihre Werte aufgefuhrt: Tags (master) Tag (master) Targets (master) TargetTypeValue (unsigned integer) TargetType (UTF-8 string) TrackUID (unsigned integer) EditionUID (unsigned integer) ChapterUID (unsigned integer) AttachmentUID (unsigned integer) Simple (master) Simple (master) Name (UTF-8 string) TagLanguage (UTF-8 string) DefaultLanguage (unsigned integer) String (UTF-8 string) Binary (binary) SEGMENTINFORMATION Mit einer Segmentinformations-XML-Datei ist es moglich, bestimmte Werte im Kopffeld >>segment information<< einer Matroska(TM)-Datei zu setzen. Alle diese Werte konnen nicht uber andere Befehlszeilenoptionen gesetzt werden. Andere >>segment information<>muxing date<< bekannt), MuxingApp, WritingApp und Duration. Sie werden immer von mkvmerge(1) selbst gesetzt. Im Folgenden werden unterstutzte XML-Tags, ihre Datentypen und, falls zweckmassig, der gultige Bereich fur ihre Werte aufgefuhrt: Info (master) SegmentUID (binary, valid range: length in bytes == 16) SegmentFilename (UTF-8 string) PreviousSegmentUID (binary, valid range: length in bytes == 16) PreviousSegmentFilename (UTF-8 string) NextSegmentUID (binary, valid range: length in bytes == 16) NextSegmentFilename (UTF-8 string) SegmentFamily (binary, valid range: length in bytes == 16) ChapterTranslate (master) ChapterTranslateEditionUID (unsigned integer) ChapterTranslateCodec (unsigned integer) ChapterTranslateID (binary) MATROSKA(TM)-DATEILAYOUT Das Matroska(TM)-Dateilayout ist ziemlich flexibel. mkvmerge(1) wird eine Datei auf eine vordefinierte Art erzeugen. Die resultierende Datei sieht wie folgt aus: [EBML head] [segment {meta seek #1} [segment information] [track information] {attachments} {chapters} [cluster 1] {cluster 2} ... {cluster n} {cues} {meta seek #2} {tags}] Die Elemente in geschweiften Klammern sind optional und hangen vom Inhalt und den benutzten Optionen ab. Ein paar Anmerkungen: o >>meta seek #1<< beinhaltet nur eine kleine Zahl von Elementen der Stufe eins und das nur, falls sie tatsachlich existieren: Anhange, Kapitel, Indizes, Tags, >>meta seek #2<<. Altere Versionen von mkvmerge(1) legten auch die Cluster in dieses Metasuchelement ab. Daher wurden einige ungenaue Annahmen notig, um ausreichend Platz zu reservieren. Dies schlug oft fehl. Nun werden nur die Cluster in >>meta seek #2<< gespeichert und >>meta seek #1<< verweist auf das Metasuchelement #2. o Anhang-, Kapitel- und Tag-Elemente sind nur vorhanden, falls sie hinzugefugt wurden. Die kurzest mogliche Matroska(TM)-Datei wurde etwa so aussehen: [EBML head] [segment [segment information] [track information] [cluster 1]] Dies konnte bei reinen Tondateien der Fall sein. EXTERNE ZEITSTEMPELDATEIEN mkvmerge(1) erlaubt, die Zeitstempel fur eine bestimmte Spur selbst auszuwahlen. Dies kann benutzt werden, um Dateien mit variabler Videobildrate zu erstellen oder Lucken in den Ton einzuarbeiten. In diesem Fall ist ein Bild die Einheit, die mkvmerge(1) separat pro Matroska(TM)-Block erstellt. Fur Video ist dies genau ein Bild, fur Ton ist dies ein Paket des speziellen Audiotyps. Dies ware z.B. fur AC-3 ein Paket, das 1536-Samples enthalt. Zeitstempeldateien, die benutzt werden, wenn Spuren aneinander angehangt werden, durfen nur fur den ersten Teil in einer Kette von Spuren angegeben werden. Falls Sie zum Beispiel zwei Dateien, v1.avi und v2.avi, anhangen und dabei Zeitstempel verwenden mochten, muss Ihre Befehlszeile etwa so aussehen: $ mkvmerge ... --timestamps 0:meine_Zeitstempel.txt v1.avi +v2.avi Es gibt vier Formate, die mkvmerge(1) bekannt sind. Die erste Zeile enthalt immer die Versionsnummer. Leere Zeilen, Zeilen, die nur Leerraume enthalten und Zeilen, die mit >>#<< beginnen, werden ignoriert. Zeitstempeldateiformat v1 Dieses Format beginnt mit der Versionszeile. Die zweite Zeile deklariert die Standardanzahl von Bildern pro Sekunde (BpS). Alle folgenden Zeilen enthalten drei durch Kommas getrennte Zahlen: das Startbild (0 ist das erste Bild), das Endbild und die Anzahl der Bilder in diesem Bereich. Die BpS sind eine Fliesskommazahl mit dem Punkt >>.<< als Dezimalpunkt. Die Bereiche konnen Lucken enthalten, fur die die Standard-BpS benutzt werden. Ein Beispiel: # Zeitstempelformat v1 assume 27.930 800,1000,25 1500,1700,30 Zeitstempeldateiformat v2 In diesem Format enthalt jede Zeile einen Zeitstempel fur das zugehorige Bild. Dieser Zeitstempel muss mit einer Genauigkeit von Millisekunden angegeben werden. Er kann eine Fliesskommazahl sein, muss aber nicht. Sie mussen mindestens so viele Zeitstempelzeilen angeben, wie es Bilder in der Spur gibt. Die Zeitstempel mussen sortiert sein. Beispiel fur 25 bps: # Zeitstempelformat v2 0 40 80 Zeitstempeldateiformat v3 In diesem Format enthalt jede Zeile eine Dauer in Sekunden, gefolgt von einer optionalen Zahl von Bildern pro Sekunde. Beide konnen Fliesskommazahlen sein. Falls die Zahl der Bilder pro Sekunde nicht vorliegt, wird die Voreinstellung benutzt. Fur Audio sollten Sie den Codec die Bildzeitstempel selbst berechnen lassen. Dazu sollten Sie 0,0 als Anzahl der Bilder pro Sekunde verwenden. Sie konnen auch Lucken im Datenstrom erzeugen, indem Sie das Schlusselwort >>gap<< gefolgt von der Dauer der Lucke benutzen. Beispiel einer Audiodatei: # Zeitstempelformat v3 assume 0.0 25.325 7.530,38.236 gap, 10.050 2.000,38.236 Zeitstempeldateiformat v4 Dieses Format ist identisch mit dem Format v2. Der einzige Unterschied besteht darin, dass Zeitstempel nicht sortiert werden mussen. Dieses Format sollte so gut wie nie benutzt werden. RUCKGABEWERTE mkvmerge(1) beendet sich mit einem von drei Ruckgabewerten: o 0 - dieser Ruckgabewert bedeutet, dass das Muxing erfolgreich abgeschlossen wurde. o 1 - in diesem Fall hat mkvmerge(1) mindestens eine Warnung ausgegeben, das Muxing wurde aber fortgesetzt. Einer Warnung wird der Text >>Warning:<< vorangestellt. Abhangig von den aufgetretenen Problemen konnen die resultierenden Dateien in Ordnung sein oder nicht. Es wird nachdrucklich geraten, sowohl die Warnung als auch die resultierende Datei zu uberprufen. o 2 - dieser Ruckgabewert wird benutzt, nachdem ein Fehler aufgetreten ist. mkvmerge(1) wird gleich nach der Ausgabe der Fehlermeldung abgebrochen. Fehlermeldungen reichen von falschen Befehlszeilenargumenten uber Lese-/Schreibfehler bis hin zu beschadigten Dateien. UMGEBUNGSVARIABLEN mkvmerge(1) verwendet die Standardvariablen, die die Locale des System bestimmen (d.h. LANG und die LC_*-Familie). Zusatzliche Variablen: MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG und ihre Kurzform MTX_DEBUG Der Inhalt wird behandelt, als ob er mit der Option --debug ubergeben worden ware. MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE und ihre Kurzform MTX_ENGAGE Der Inhalt wird behandelt, als ob er mit der Option --engage ubergeben worden ware. SIEHE AUCH mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1) WWW Die neuste Version kann immer auf der MKVToolNix-Homepage[6] gefunden werden. AUTOR Moritz Bunkus Entwickler FUssNOTEN 1. die Matroska(TM)-Website https://www.matroska.org/ 2. IANA-Homepage https://www.iana.org/assignments/media-types/ 3. mkvmerge-identification-output-schema-v18.json https://mkvtoolnix.download/doc/mkvmerge-identification-output- schema-v18.json 4. RFC 7159 https://tools.ietf.org/html/rfc7159 5. Matroska(TM)-Spezifikation https://www.matroska.org/technical/specs/index.html 6. der MKVToolNix-Homepage https://mkvtoolnix.download/ MKVToolNix 83.0 2024-03-10 MKVMERGE(1)