MKVEXTRACT(1) Benutzerbefehle MKVEXTRACT(1) NAME mkvextract - extrahiert Spuren aus Matroska(TM)-Dateien in andere Dateien. UBERSICHT mkvextract {Quelldateiname} {Modus1} [Optionen] [Extraktionsangabe1] [Modus2] [Optionen] [Extraktionsangabe2] [...] BESCHREIBUNG Dieses Programm extrahiert bestimmte Teile einer Matroska(TM)-Datei in andere nutzliche Formate. Das erste Argument ist der Name der Quelldatei, die eine Matroska(TM)-Datei sein muss. Alle anderen Argumente wechseln entweder den Modus, andern Optionen fur den momentan aktiven Modus oder geben an, was in welche Datei extrahiert werden soll. Mehrere Modi konnen im selben Aufruf von mkvextract benutzt werden, wodurch man mehrere Dinge in einem einzigen Durchlauf extrahieren kann. Die meisten Optionen konnen nur in bestimmten Modi verwendet werden, wobei einige wenige in allen Modi gultig sind. Derzeit wird das Extrahieren von Spuren, Tags, Anhangen, Kapiteln, Cuesheets, Zeitstempel und Indexelemente unterstutzt. Gemeinsame Optionen Die folgenden Optionen sind in allen Modi verfugbar und werden nur einmal in diesem Abschnitt beschrieben. -f, --parse-fully Setzt den Auswertungsmodus auf >>full<<. Der Standardmodus wertet nicht die ganze Datei aus, benutzt aber Metasuchelemente zum Orten der benotigten Elemente der Quelldatei. In 99% der Falle reicht dies. Aber fur Dateien, die keine Metasuchelemente enthalten oder beschadigt sind, kann es notwendig sein, diesen Modus zu aktivieren. Ein vollstandiger Scan einer Datei kann ein paar Minuten in Anspruch nehmen, wahrend ein schneller Scan nur Sekunden dauert. --command-line-charset Zeichensatz Setzt den Zeichensatz, um auf der Befehlszeile angegebene Zeichenketten umzuwandeln. Voreinstellung ist der Zeichensatz der aktuellen Locale des Systems. --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. --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 mkvextract --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. -v, --verbose Aktiviert detaillierte Ausgabe und zeigt alle wichtigen Matroska(TM)-Elemente an, sobald sie gelesen wurden. -h, --help Zeigt Benutzungsinformationen und beendet sich. -V, --version Zeigt Versionsinformationen und beendet sich. @Optionsdatei.json Liest zusatzliche Befehlszeilenargumente aus der Datei Optionsdatei. Eine ausfuhrliche Erlauterunge uber die unterstutzten Formate finden Sie im Abschnitt "Optionsdateien" in der Handbuchseite zu mkvmerge(1). Spurextrahierungsmodus Syntax: mkvextract Quelldateiname tracks [Optionen] TID1:Zieldateiname1 [TID2:Zieldateiname2 ...] Die folgenden Befehlszeilenoptionen sind fur jede Spur im Extrahierungsmodus >>tracks<< verfugbar. Sie mussen vor der Spurenspezifikation, auf die sie angewandt werden sollen, erscheinen (siehe unten). -c Zeichensatz Setzt den Zeichensatz in den die nachste Textuntertitelspur umgewandelt werden soll. Nur gultig, falls die nachste Spur-ID auf eine Untertitelspur verweist. Voreinstellung ist UTF-8. --blockadd Stufe Behalt nur die BlockAdditions bis hinauf zu dieser Stufe. Standardassig werden alle Stufen behalten. Diese Option beeinflusst nur einge Codec-Arten wie WAVPACK4. --cuesheet Veranlasst mkvextract(1) ein CUEsheet aus den Kapitelinformationen zu extrahieren und Daten fur die folgende Spur in einer Datei zu kennzeichnen, deren Name der Ausgabename der Spur mit angehangtem >>.cue<< ist. --raw Extrahiert die rohen Daten in eine Datei ohne irgendwelche umgebenden Container-Daten. Im Gegensatz zum Schalter --fullraw veranlasst dieser Schalter nicht, dass der Inhalt des Elements CodecPrivate in die Datei geschrieben wird. Dieser Modus funktioniert mit allen CodecIDs, sogar mit denen, die mkvextract(1) ansonsten nicht unterstutzt, aber die resultierenden Dateien sind moglicherweise nicht benutzbar. --fullraw Extrahiert die rohen Daten in eine Datei ohne irgendwelche umgebenden Container-Daten. Der Inhalt des Elements CodecPrivate wird in die erste Datei geschrieben, falls die Spur solch ein Kopfelement enthalt. Dieser Modus funktioniert mit allen CodecIDs, sogar mit denen, die mkvextract(1) ansonsten nicht unterstutzt, aber die resultierenden Dateien sind moglicherweise nicht benutzbar. TID:Ausgabename Veranlasst das Extrahieren der Spur mit der ID TID in die Datei Ausgabename, falls eine derartige Spur in der Quelldatei existiert. Diese Option kann mehrfach angegeben werden. Die Spur-IDs sind dieselben wie die, die durch mkvmerge(1)s Option --identify ausgegeben werden. Jeder Ausgabename sollte nur einmal benutzt werden. Eine Ausnahme bilden RealAudio- und RealVideo-Spuren. Falls Sie den gleichen Namen fur unterschiedliche Spuren verwenden, dann werden diese Spuren in der selben Datei gespeichert. Beispiel: $ mkvextract Eingabe.mkv tracks 0:Video.h264 2:Ausgabe-zwei-VobSub-Spuren.idx 3:Ausgabe-zwei-VobSub-Spuren.idx Extrahierungsmodus fur Anhange Syntax: mkvextract Quelldateiname attachments [Optionen] AID1:Zieldateiname1 [AID2:Zieldateiname2 ...] AID:Ausgabename Veranlasst das Extrahieren des Anhangs mit der ID AID in die Datei Ausgabename, falls ein derartiger Anhang in der Quelldatei existiert. Wenn der Ausgabename leer gelassen wird, dann wird stattdessen der Name des Anhangs innerhalb der Matroska(TM)-Datei benutzt. Diese Option kann mehrfach angegeben werden. Die IDs der Anhange sind dieselben wie die, die durch mkvmerge(1)s Option --identify ausgegeben werden. Kapitelextrahierungsmodus Syntax: mkvextract Quelldateiname chapters [Optionen] Ausgabedateiname.xml -s, --simple Exportiert die Kapitelinformationen in das einfache, von den OGM-Werkzeugen benutzte Format (CHAPTER01=..., CHAPTER01NAME=...). In diesem Modus mussen einige Informationen verworfen werden. Standardmassig werden die Kapitel im XML-Format ausgegeben. --simple-language Sprache Falls das einfache Kapitelformat aktiviert ist, gibt mkvextract(1) pro gefundenem Kapitel genau einen Eintrag ausgeben, auch wenn das Kapitel mehrere Kapitelnamen besitzt. Standardmassig gibt mkvextract(1) fur jedes Kapitel den jeweils als erstes gefundenen Namen unabhangig von seiner Sprache aus. Das Benutzen dieser Option erlaubt es festzulegen, welche Kapitelnamen ausgegeben werden, falls die Kapitel mehr als einen Namen besitzen. Der Sprache-Parameter muss ein ISO-639-1- oder ISO-639-2-Code sein. Die Kapitel werden in die angegebene Ausgabedatei geschrieben. Standardmassig wird das von mkvmerge(1) verstandene XML-Format benutzt. Falls in der Datei keine Kapitel gefunden werden, so wird auch keine Ausgabedatei erzeugt. Extrahierungsmodus fur Tags Syntax: mkvextract Quelldateiname tags [Optionen] Ausgabedateiname.xml Die Tags werden im von mkvmerge(1) verstandenen XML-Format in die angegebene Ausgabedatei geschrieben. Falls in der Datei keine Tags gefunden werden, so wird auch keine Ausgabedatei erzeugt. Extrahierungsmodus fur Cuesheets Syntax: mkvextract Quelldateiname cuesheet [Optionen] Ausgabedateiname.cue Das Cuesheet wird in die angegebene Ausgabedatei geschrieben. Falls in der Datei keine Kapitel oder keine Tags gefunden werden, so wird auch keine Ausgabedatei erzeugt. Zeitstempelextrahierungsmodus Syntax: mkvextract Ausgabedateiname timestamps_v2 [Optionen] TID1:Zieldateiname1 [TID2:Zieldateiname2 ...] TID:Ausgabename Veranlasst das Extrahieren der Zeitstempel fur die Spur mit der ID TID in die Datei Ausgabename, falls eine derartige Spur in der Quelldatei existiert. Diese Option kann mehrfach angegeben werden. Die IDs der Spuren sind dieselben wie die, die durch mkvmerge(1)s Option --identify ausgegeben werden. Beispiel: $ mkvextract Eingabe.mkv timestamps_v2 1:Zeitstempel-Spur1.txt 2:Zeitstempel-Spur2.txt Extrahierungsmodus fur Indexelemente Syntax: mkvextract Quelldateiname cues [Optionen] TID1:Zieldateiname1 [TID2:Zieldateiname2 ...] TID:Zielname Veranlasst das Extrahieren der Indexelemente fur die Spur mit der ID TID in die Datei Ausgabename, falls eine derartige Spur in der Quelldatei existiert. Diese Option kann mehrfach angegeben werden. Die IDs der Spuren sind dieselben wie die, die durch mkvmerge(1)s Option --identify ausgegeben werden und nicht die Nummern, die in den CueTrack-Elementen enthalten sind. Das Ausgabeformat ist ein einfaches Textformat: eine Zeile pro CuePoint-Element, die schluessel=wert-Paare enthalt. Falls ein optionales Element in einem CuePoint nicht enthalten ist (z.B. CueDuration), so wird ein Bindestrich als Wert ausgegeben. Beispiel: timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11 Die moglichen Schlusselworter sind: Zeitstempel Der Zeitstempel des Indexelementes mit Nanosekunden-Prazision. Das Format lautet HH:MM:SS.nnnnnnnnn. Dieses Element ist immer gesetzt. duration Die Dauer des Indexelements mit Nanosekunden-Prazision. Das Format lautet HH:MM::SS.nnnnnnnnn. cluster_position Die absolute Position in Bytes innerhalb der Matroska(TM)-Datei, an der der Cluster beginnt, der das referenzierte Element enthalt. Anmerkung Innerhalb der Matroska(TM)-Datei ist das CueClusterPosition-Element relativ zum Anfang des Datenbereiches des Segments. Der von mkvextract(1)s Indexelement-Modus ausgegebene Wert enthalt diesen Offset allerdings bereits ind ist daher ein absoluter Offset, der sich auf den Anfang der ganzen Datei bezieht. relative_position Die relative Position in Bytes innerhalb des Clusters, an der das BlockGroup- oder SimpleBlock-Element beginnt, auf das sich der Indexeintrag bezieht. Anmerkung Innerhalb der Matroska(TM)-Datei ist das CueRelativePosition-Element relativ zum Anfang des Datenbereiches des Clusters. Der von mkvextract(1)s Indexelement-Modus ausgegebene Wert ist allerdings relativ zum Start der Cluster-Element-ID. Die absolute Position innerhalb der Datei kann daher durch Addition von cluster_position und relative_position ermittelt werden. Beispiel: $ mkvextract Eingabe.mkv cues 1:Index-Spur1.txt 2:Index-Spur2.txt BEISPIELE Gleichzeitig sowohl Kapitel als auch Tags in ihren jeweiligen XML-Formaten extrahieren: $ mkvextract Film.mkv chapters Film-Kapitel.xml tags Film-Tags.xml Gleichzeitig ein paar Spuren und ihre jeweiligen Zeitstempel extrahieren: $ mkvextract "Ein weiterer Film.mkv" tracks 0:Video.h265 "1:Haupt-Audiospur.aac" "2:Kommentar der Regisseurin.aac" timestamps_v2 "0:Zeitstempel Video.txt" "1:Zeitstempel Haupt-Audiospur.txt" "2:Zeitstempel Kommentar der Regisseurin.txt" Kapitel im Ogg/OGM-Format extrahieren und eine Text-Untertitel-Spur in einen anderen Zeichensatz wandeln: $ mkvextract "Mein Film.mkv" chapters --simple "Meine Kapitel.txt" tracks -c MS-ANSI "2:Meine Untertitel.srt" UMWANDLUNGEN VON TEXTDATEIEN UND ZEICHENSATZEN Fur eine tiefer gehende Diskussion daruber, wie die Programme in der MKVToolNix-Sammlung die Umwandlung von Zeichensatzen, Eingabe-/Ausgabecodierung, Kommandozeilenzeichensatze und Konsolenzeichensatze handhaben, sei auf den Abschnitt >>Umwandlungen von Textdateien und Zeichensatzen<< in der Handbuchseite von mkvmerge(1) verwiesen. AUSGABEDATEIFORMATE Die Entscheidung uber das Ausgabeformat basiert auf dem Spurtyp, nicht auf der fur den Ausgabedateinamen benutzen Dateiendung. Die folgenden Spurtypen werden derzeit unterstutzt: A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC Alle AAC-Dateien werden in eine AAC-Datei mit ADTS-Kopfdaten vor jedem Paket geschrieben. Die ADTS-Kopfdaten werden nicht das missbilligte Feld >>emphasis<< enthalten. A_AC3, A_EAC3 Diese werden in rohe AC-3-Dateien extrahiert. A_ALAC ALAC-Spuren werden in CAF-Dateien geschrieben. A_DTS Diese werden in rohe DTS-Dateien extrahiert. A_FLAC FLAC-Spuren werden in FLAC-Dateien geschrieben. A_MPEG/L2 MPEG-1-Audio-Layer-II-Datenstrome werden in rohe MP2-Dateien extrahiert. A_MPEG/L3 Diese werden in rohe MP3-Dateien extrahiert. A_OPUS Opus(TM)-Spuren werden in OggOpus(TM)-Dateien geschrieben. A_PCM/INT/LIT, A_PCM/INT/BIG Rohe PCM-Daten werden in eine WAV-Datei geschrieben. Dabei werden Big-Endian-Integer-Daten in Little-Endian-Daten umgewnadelt. A_REAL/* RealAudio(TM)-Spuren werden in RealMedia(TM)-Dateien geschrieben. A_TRUEHD, A_MLP Diese werden in rohe TrueHD-/MLP-Dateien extrahiert. A_TTA1 TrueAudio(TM)-Spuren werden in TTA-Dateien geschrieben. Bitte beachten Sie, dass die extrahierten Dateikopfdaten wegen der begrenzten Zeitstempelgenauigkeit von Matroska(TM) in Bezug auf zwei Felder unterschiedlich sind: data_length (die Gesamtzahl der Samples in der Datei) und der CRC. A_VORBIS Vorbis-Audio wird in eine OggVorbis(TM)-Datei geschrieben. A_WAVPACK4 WavPack-Spuren werden in WV-Dateien geschrieben. S_HDMV/PGS PGS-Untertitel werden als SUP-Dateien geschrieben. S_HDMV/TEXTST TextST-Untertitel werden in einem speziellen Format geschrieben, das fur mkvmerge(1) und mkvextract(1) erfunden wurde. S_KATE Kate(TM)-Datenstrome werden innerhalb eines Ogg(TM)-Containers geschrieben. S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS SSA- und ASS-Textuntertitel werden als SSA- beziehungsweise ASS-Dateien geschrieben. S_TEXT/UTF8, S_TEXT/ASCII Einfache Textuntertitel werden in SRT-Dateien geschrieben. S_VOBSUB VobSub(TM)-Untertitel werden als SUB-Dateien geschrieben, zusammen mit den jeweiligen Indexdateien als IDX-Dateien. S_TEXT/USF USF-Textuntertitel werden als USF-Dateien geschrieben. S_TEXT/WEBVTT WebVTT-Textuntertitel werden als WebVTT-Dateien geschrieben. V_MPEG1, V_MPEG2 MPEG-1-/MPEG-2-Videospuren werden in MPEG-Elementarstrom-Dateien geschrieben. V_MPEG4/ISO/AVC H.264-/AVC-Videospuren werden in einfache H.264-Datenstrome geschrieben, die spater z.B. mit MP4Box(TM) aus dem Paket GPAC(TM) bearbeitet werden konnen. V_MPEG4/ISO/HEVC H.265-/HEVC-Videospuren werden in einfache H.265-Datenstrome geschrieben, die spater z.B. mit MP4Box(TM) aus dem Paket GPAC(TM) bearbeitet werden konnen. V_MS/VFW/FOURCC Feste BpS-Videospuren mit dieser CodecID werden in AVI-Dateien geschrieben. V_REAL/* RealVideo(TM)-Spuren werden in RealMedia(TM)-Dateien geschrieben. V_THEORA Theora(TM)-Datenstrome werden innerhalb eines Ogg(TM)-Containers geschrieben. V_VP8, V_VP9 VP8-/VP9-Spuren werden in IVF-Dateien geschrieben. Tags Tags werden in ein XML-Format umgewandelt. Dieses Format ist dasselbe, das mkvmerge(1) zum Lesen der Tags unterstutzt. Anhange Anhange werden, so wie sie sind, in ihre Ausgabedatei geschrieben. Es wird keine Umwandlung in irgendeiner Art durchgefuhrt. Kapitel Kapitel werden in ein XML-Format umgewandelt. Dieses Format ist dasselbe, das mkvmerge(1) zum Lesen der Kapitel unterstutzt. Alternativ kann eine heruntergekurzte Version im einfachen OGM-Formatstil ausgegeben werden. Zeitstempel Zeitstempel werden zuerst sortiert und dann als eine Datei ausgegeben, die konform zum Zeitstempelformat v2 und fertig zur Eingabe in mkvmerge(1) ist. Das Extrahieren in andere Formate (v1, v3 und v4) wird nicht unterstutzt. RUCKGABEWERTE mkvextract(1) wird mit einem von drei Ruckgabewerten beendet: o 0 - dieser Ruckgabewert bedeutet, dass das Extrahieren erfolgreich abgeschlossen wurde. o 1 - in diesem Fall hat mkvextract(1) mindestens eine Warnung ausgegeben, das Extrahieren wurde aber fortgesetzt. Einer Warnung wird der Text >>Warning:<< vorangestellt. Abhangig von den aufgetretenen Problemen konnen die resultierenden Dateien in Ordnung oder nicht sein. Es wird nachdrucklich geraten, sowohl die Warnung als auch die resultierenden Dateien zu uberprufen. o 2 - dieser Ruckgabewert wird benutzt, nachdem ein Fehler aufgetreten ist. mkvextract(1) wird gleich nach der Ausgabe der Fehlermeldung abgebrochen. Fehlermeldungen reichen von falschen Befehlszeilenargumenten uber Lese-/Schreibfehler bis hin zu beschadigten Dateien. UMGEBUNGSVARIABLEN mkvextract(1) verwendet die Standardvariablen, um die Locale des Systems zu bestimmen (z.B. LANG und die LC_*-Familie). Zusatzliche Variablen: MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG und ihre Kurzform MTX_DEBUG Der Inhalt wird behandelt, als ob er mit der Option --debug ubergeben worden ware. MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE und ihre Kurzform MTX_ENGAGE Der Inhalt wird behandelt, als ob er mit der Option --engage ubergeben worden ware. SIEHE AUCH mkvmerge(1), mkvinfo(1), mkvpropedit(1), mkvtoolnix-gui(1) WWW Die neuste Version kann immer auf der MKVToolNix-Homepage[1] gefunden werden. AUTOR Moritz Bunkus Entwickler FUssNOTEN 1. der MKVToolNix-Homepage https://mkvtoolnix.download/ MKVToolNix 83.0 2024-03-10 MKVEXTRACT(1)