mkvpropedit - ändert Eigenschaften von existierenden Matroska(TM)-Dateien ohne ein komplett neues Muxing.
Dieses Programm analysiert eine existierende
Matroska(TM)-Datei und ändert einige ihrer Eigenschaften. Dann schreibt es diese Änderungen in die existierende Datei. Unter den Eigenschaften, die geändert werden können, sind die Segmentinformationselemente (z.B. der Titel) und die Spurenkopfdaten (z.B. der Sprachcode, der Scahlter »Standardspur« oder der Name).
Optionen:
-l, --list-property-names
-
führt alle bekannten und bearbeitbaren Eigenschaftsnamen, ihren Typ (Zeichenkette, Ganzzahl, Boolean etc.) und eine kurze Beschreibung auf. Das Programm beendet sich anschließend. Daher muss der Parameter
Quelldateiname
nicht mitgegeben werden.
-p, --parse-mode Modus
-
setzt den Auswertungsmodus. Der Parameter
Modus
kann entweder »fast« (was auch die Voreinstellung ist) oder »full« sein. Der Modus »fast« wertet nicht die ganze Datei aus, benutzt aber die Metasuchelemente zum Orten der benötigten Elemente der Quelldatei. In 99% der Fälle reicht dies. Aber für Dateien, die keine Metasuchelemente enthalten oder beschädigt sind, kann es notwendig sein, dass der Anwender den Auswertungsmodus »full« benutzt. Ein vollständiger Scan einer Datei kann ein paar Minuten in Anspruch nehmen, während ein schneller Scan nur Sekunden dauert.
Aktionen, die mit Eigenschaften von Spur- und Segmentinformationen umgehen:
-e, --edit Selektor
-
setzt den
Matroska(TM)-Dateiabschnitt (Segmentinformationen oder die Kopfdaten einer bestimmten Spur), mit der alle nachfolgenden
add-,
set- und
delete-Aktionen arbeiten. Diese Option kann mehrfach benutzt werden, um Änderungen an mehr als einem Element vorzunehmen.
Standardmäßig wird
mkvpropedit(1)
den Segmentinformationsabschnitt bearbeiten.
Eine vollständige Beschreibung der Syntax finden Sie im Abschnitt über
Selektoren zur Bearbeitung.
-a, --add Name=Wert
-
fügt die Eigenschaft
Name
mit dem Wert
Wert
hinzu. Die Eigenschaft wird selbst dann hinzugefügt, wenn eine derartige Eigenschaft bereits existiert. Beachten Sie, dass die meisten Eigenschaften eindeutig sind und nicht öfter als einmal auftreten können.
-s, --set Name=Wert
-
setzt alle Vorkommen der Eigenschaft
Name
auf den Wert
Wert. Falls keine derartige Eigenschaft existiert, wird sie hinzugefügt.
-d, --delete Name
-
löscht alle Vorkommen der Eigenschaft
Name. Beachten Sie, dass einige Eigenschaften benötigt werden und nicht gelöscht werden können.
Aktionen, die mit Tags und Kapitel umgehen:
-t, --tags Selektor:Dateiname
-
fügt in der Datei Tags hinzu, ersetzt sie durch die aus
Dateiname
oder entfernt sie, falls
Dateiname
leer ist.
mkvpropedit(1)
liest dasselbe XML-Tag-Format, das auch
mkvmerge(1)
liest.
Der
Selektor
muss eines der Wörter
all,
global
oder
track
sein. Bei
all
wird
mkvpropedit(1)
alle Tags in einer Datei ersetzen oder entfernen. Bei
global
werden nur globale Tags ersetzt oder entfernt.
Bei
track
wird
mkvpropedit(1)
Tags für eine bestimmte Spur ersetzen. Zusätzlich werden die aus
Dateiname
gelesenen Tags derselben Spur zugeteilt. Die Spur wird auf dieselbe Weise angegeben wie die
Selektoren zur Bearbeitung
(siehe unten), z.B.
--tags track:a1:neue-Audio-Tags.xml.
--add-track-statistics-tags
-
Berechnet Statistiken für alle Spuren in einer Datei und legt für sie neue Statistik-Tags an. Wenn die Datei solche Tags bereits enthält, so werden sie aktuelisiert.
--delete-track-statistics-tags
-
Löscht alle vorhandenen Tags mit Spur-Statistiken aus einer Datei. Falls die Datei keine Spur-Statistik-Tags enthält, so wird sie nicht verändert.
-c, --chapters Dateiname
-
fügt in der Datei Kapitel aus
Dateiname
hinzu, ersetzt sie dadurch oder entfernt sie, falls
Dateiname
leer ist.
mkvpropedit(1)
liest dieselben XML- und Kapitelformate, die auch
mkvmerge(1)
liest.
Aktionen für den Umgang mit Anhängen:
--add-attachment Dateiname
-
fügt einen neuen Anhang aus
Dateiname
hinzu.
Falls die Option
--attachment-name
vor dieser Option benutzt wurde, wird ihr Wert als Name des neuen Anhangs verwendet. Andernfalls wird er aus
Dateiname
abgeleitet.
Falls die Option
--attachment-mime-type
vor dieser Option benutzt wurde, wird ihr Wert als MIME-Typ des neuen Anhangs verwendet. Andernfalls wird er automatisch anhand des Inhalts von
Dateiname
bestimmt.
Falls die Option
--attachment-description
vor dieser Option benutzt wurde, wird ihr Wert als Beschreibung des neuen Anhangs verwendet. Andernfalls wird keine Beschreibung hinterlegt.
Falls die Option
--attachment-uid
vor dieser Option benutzt wurde, wird ihr Wert als UID des neuen Anhangs verwendet. Andernfalls wird automatisch eine zufällige UID erzeugt.
--replace-attachment Selektor:Dateiname
-
ersetzt einen oder mehrere Anhänge, die zum
Selektor
passen, durch die Datei
Dateiname. Falls mehr als ein existierender Anhang zum
Selektor
passt, werden alle ihre Inhalte durch den Inhalt von
Dateiname
ersetzt.
Der
Selektor
kann eine von vier Formen haben. Sie werden unten im Abschnitt
Anhangauswahlpunkte
erklärt.
Falls die Option
--attachment-name
vor dieser Option benutzt wurde, wird ihr Wert als Name für alle veränderten Anhänge verwendet. Andernfalls werden die Namen nicht geändert.
Falls die Option
--attachment-mime-type
vor dieser Option benutzt wurde, wird ihr Wert als MIME-Typ aller veränderten Anhänge verwendet. Andernfalls werden die MIME-Typen nicht geändert.
Falls die Option
--attachment-description
vor dieser Option benutzt wurde, wird ihr Wert als Beschreibung aller veränderten Anhänge verwendet. Andernfalls werden die Beschreibungen nicht geändert.
Falls die Option
--attachment-uid
vor dieser Option benutzt wurde, wird ihr Wert als UID aller veränderten Anhänge verwendet. Andernfalls werden die UIDs nicht geändert.
--update-attachment Selektor
-
aktualisiert die Eigenschaften eines oder mehrere Anhänge, die zum
Selektor
passen. Falls mehr als ein existierender Anhang zum
Selektor
passt, werden all ihre Eigenschaften aktualisiert.
Der
Selektor
kann eine von vier Formen haben. Sie werden unten im Abschnitt
Anhangauswahlpunkte
erklärt.
Falls die Option
--attachment-name
vor dieser Option benutzt wurde, wird ihr Wert als Name für alle veränderten Anhänge verwendet. Andernfalls werden die Namen nicht geändert.
Falls die Option
--attachment-mime-type
vor dieser Option benutzt wurde, wird ihr Wert als MIME-Typ aller veränderten Anhänge verwendet. Andernfalls werden die MIME-Typen nicht geändert.
Falls die Option
--attachment-description
vor dieser Option benutzt wurde, wird ihr Wert als Beschreibung aller veränderten Anhänge verwendet. Andernfalls werden die Beschreibungen nicht geändert.
Falls die Option
--attachment-uid
vor dieser Option benutzt wurde, wird ihr Wert als UID aller veränderten Anhänge verwendet. Andernfalls werden die UIDs nicht geändert.
--delete-attachment Selektor
-
löscht einen oder mehrere Anhänge, die zum
Selektor
passen.
Der
Selektor
kann eine von vier Formen haben. Sie werden unten im Abschnitt
Anhangauswahlpunkte
erklärt.
Optionen für Aktionen mit Anhängen:
--attachment-name Name
-
setzt den Namen, der für die nachfolgende
--add-attachment- oder
--replace-attachment-Transaktion benutzt wird.
--attachment-mime-type MIME-Typ
-
setzt den MIME-Typ, der für die nachfolgende
-add-attachment- oder
--replace-attachment-Transaktion benutzt wird.
--attachment-description Beschreibung
-
setzt die Beschreibung, die für die nachfolgende
-add-attachment- oder
--replace-attachment-Transaktion benutzt wird.
Weitere Optionen:
--disable-language-ietf
-
Wenn Änderungen an der Eigenschaft »language« vorgenommen werden, nimmt
mkvpropedit(1)
normalerweise dieselben Änderungen am neuen
LanguageIETF-Spurkopfdaten-Element in Ergänzung zum alten
Language-Element vor. Wenn diese Option benutzt wird, so wird die Änderung nur auf das alte
Language-Element angewendet.
Diese Option hat keinen Einfluss auf Änderungen, die über die Spurkopfdaten-Eigenschaft »language-ietf« angefragt werden.
--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 Fälle, in denen diese Option benötigt wird: wenn das Terminal die Ausgabe vor dem Schreiben in eine Datei neu auswertet. Der mit
--output-charset
gesetzte Zeichensatz wird dabei berücksichtigt.
--ui-language Code
-
Erzwingt, dass die Übersetzungen für die Sprache
Code
benutzt werden (z.B. »de_DE« für die deutschen Übersetzungen). Bei der Eingabe von »list« als
Code
gibt das Programm eine Liste der verfügbaren Übersetzungen aus.
--abort-on-warnings
-
Weist das Programm an abzubrechen, nachdem die erste Warnung ausgegeben wurde. Der Rückgabewert des Programms wird in dem Fall 1 sein.
--debug Thema
-
schaltet die Fehlersuche für eine bestimmte Funktionalität ein. Diese Option ist nur für Entwickler nützlich.
--engage Funktionalität
-
schaltet experimentelle Funktionalitäten ein. Eine Liste verfügbarer Funktionalitäten kann mit
mkvpropedit --engage list
abgefragt werden. Diese Funktionalitäten sind nicht für die Verwendung in Alltagssituationen gedacht.
--gui-mode
-
Schaltet den Modus für graphische Benutzeroberflächen an. In diesem Modus können 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 Schlüssel/Wert-Paare wie z.B. '#GUI#Nachricht#schluessel1=wert1#schluessel2=wert2...'. Weder die Nachricht selber noch die Schlüssel werden jemals übersetzt sondern immer in Englisch ausgegeben.
-v, --verbose
-
detaillierte Ausgabe, zeigt alle wichtigen
Matroska(TM)-Elemente, so wie sie gelesen wurden.
-h, --help
-
zeigt Benutzungsinformationen und beendet sich.
-V, --version
-
zeigt Versionsinformationen und beendet sich.
@Optionsdatei.json
-
Liest zusätzliche Befehlszeilenargumente aus der Datei
Optionsdatei. Eine ausführliche Erläuterunge über die unterstützten Formate finden Sie im Abschnitt "Optionsdateien" in der Handbuchseite zu
mkvmerge(1).
SELEKTOREN ZUR BEARBEITUNG
Die Option
--edit
setzt den
Matroska(TM)-Dateiabschnitt (Segmentinformationen oder die Kopfdaten einer bestimmten Spur) so, dass alle nachfolgenden
add-,
set- und
delete-Aktionen damit arbeiten. Dies bleibt gültig, bis die nächste
--edit-Option gefunden wird. Das Argument für diese Option wird Selektor zur Bearbeitung genannt.
Standardmäßig wird
mkvpropedit(1)
den Segmentinformationsabschnitt bearbeiten.
Segmentinformation
Die Segmentinformation kann mit einem dieser drei Wörter ausgewählt werden: »info«, »segment_info« oder »segmentinfo«. Sie enthält Eigenschaften wie den Segmenttitel oder die
UID
des Segments.
Spurenkopfdaten
Spurenkopfdaten können mit einem etwas komplexeren Selektor ausgewählt werden. Alle Varianten beginnen mit »track:«. Die Spurenkopfdaten beinhalten Elemente wie den Sprachcode, den »Standardspur«-Schalter oder den Namen der Spur.
track:n
-
Falls der Parameter
n
eine Zahl ist, wird die
n. Spur ausgewählt. Die Reihenfolge der Spuren ist dieselbe, die die Option
--identify
von
mkvmerge(1)
ausgibt.
Die Nummerierung beginnt bei 1.
track:tn
-
Falls der Parameter mit einem einzelnen Zeichen
t
gefolgt von einem
n
beginnt, wird die
n. Spur eines speziellen Spurtyps ausgewählt. Der Spurtypparameter
t
muss eines der folgenden Zeichen sein: »a« für eine Tonspur, »b« für eine Button-Spur »s« für eine Untertitelspur und »v« für eine Videospur. Die Reihenfolge der Spuren ist diesselbe wie die der Ausgabe der
mkvmerge(1)-Option
--identify.
Die Nummerierung beginnt bei 1.
track:=UID
-
Falls der Parameter mit einem »=« gefolgt von einer Zahl
UID
beginnt, wird die Spur ausgewählt, deren Spur-UID
dieser
UID
entspricht. Spur-UIDs können mit
mkvinfo(1)
abgefragt werden.
track:@Nummer
-
Falls der Parameter mit einem »@« gefolgt von einer Nummer
Nummer
beginnt, wird die Spur ausgewählt, deren Spurnummer dieser
Nummer
entspricht. Spurnummern können mit
mkvinfo(1)
abgefragt werden.
Hinweise
Aufgrund der Natur der Spurauswahlpunkte zur Bearbeitung ist es möglich, dass tatsächlich mehrere Selektoren zu den Kopfdaten derselben Spur passen. In diesen Fällen werden alle Aktionen für diese Selektoren zur Bearbeitung kombiniert und in der Reihenfolge ausgeführt, in der sie auf der Befehlszeile angegeben wurden.
SELEKTOREN FÜR ANHÄNGE
Ein Selektor für Anhänge wird in den beiden Aktionen
--replace-attachment
und
--delete-attachment
benutzt. Er kann eine der folgenden vier Formen haben:
-
1.
Auswahl über die ID des Anhangs. In dieser Form ist der Selektor einfach eine Nummer, die ID des Anhangs, wie sie vom Identifizierungsbefehl von
mkvmerge(1)
ausgegeben wird.
-
2.
Auswahl über die UID (eindeutig ID) des Anhangs. In dieser Form ist der Selektor das Gleichheitszeichen
=
gefolgt von einer Nummer, der eindeutigen ID des Anhangs, wie sie vom Identifizierungsbefehl von
mkvmerge(1)
ausgegeben wird.
-
3.
Auswahl über den Namen des Anhangs. In dieser Form ist der Selektor das Wort
name:
gefolgt vom existierenden Namen des Anhangs. Falls dieser Selektor mit
--replace-attachment
benutzt wird, müssen Doppelpunkte innerhalb des Namens als
\c
maskiert werden.
-
4.
Auswahl über den MIME-Typ. In dieser Form ist der Selektor das Wort
mime-type:
gefolgt vom existierenden MIME-Typ des Anhangs. Falls dieser Selektor mit
--replace-attachment
benutzt wird, müssen Doppelpunkte innerhalb des MIME-Typs als
\c
maskiert werden.
BEISPIELE
Das folgende Beispiel bearbeitet eine Datei namens »Film.mkv«. Es setzt den Segmenttitel und ändert den Sprachcode einer Ton- und Untertitelspur. Beachten Sie, dass dieses Beispiel durch Weglassen der ersten Option
--edit
verkürzt werden kann, da das Bearbeiten der Segmentinformation ohnehin für alle Optionen, die vor dem ersten
--edit
gefunden werden, die Voreinstellung ist.
-
$ mkvpropedit Film.mkv --edit info --set "title=Der Film" --edit track:a1 --set language=fre --edit track:a2 --set language=ita
Das zweite Beispiel entfernt den Standardspurschalter« von der ersten Untertitelspur und setzt ihn für die zweite. Beachten Sie, dass
mkvpropedit(1)
im Gegensatz zu
mkvmerge(1)
nicht den »Standardspurschalter« von anderen Spuren auf »0« setzt, falls es für eine andere Spur automatisch auf »1« gesetzt wird.
-
$ mkvpropedit Film.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1
Das Ersetzen der Tags für die zweite Untertitelspur in einer Datei sieht so aus:
-
$ mkvpropedit Film.mkv --tags track:s2:Neue-Untertitel-Tags.xml
Entfernen aller Tags erfordert das Weglassen des Dateinamens:
-
$ mkvpropedit Film.mkv --tags all:
Das Ersetzen der Kapitel in einer Datei sieht so aus:
-
$ mkvpropedit Film.mkv --chapters Neue-Kapitel.xml
Entfernen aller Kapitel erfordert das Weglassen des Dateinamens:
-
$ mkvpropedit Film.mkv --chapters ''
Hinzufügen einer Schriftdatei (Arial.ttf) als Anhang:
-
$ mkvpropedit Film.mkv --add-attachment Arial.ttf
Hinzufügen einer Schriftdatei (89719823.ttf) als Anhang und Bereitstellen von ein paar Informationen, dass es sich wirklich nur um Arial handelt:
-
$ mkvpropedit Film.mkv --attachment-name Arial.ttf --attachment-description 'Die Schrift Arial als eine TrueType-Schrift' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf
Ersetzen einer angehängten Schriftdatei (Comic.ttf) durch eine andere (Arial.ttf):
-
$ mkvpropedit Film.mkv --attachment-name Arial.ttf --attachment-description 'Die Schrift Arial als eine TrueType-Schrift' --replace-attachment name:Comic.ttf:Arial.ttf
Löschen der zweiten angehängten Datei, egal worum es sich handelt:
-
$ mkvpropedit Film.mkv --delete-attachment 2
Löschen aller angehängten Schriften anhand des MIME-Typs:
-
$ mkvpropedit Film.mkv --delete-attachment mime-type:application/x-truetype-font
RÜCKGABEWERTE
mkvpropedit(1)
beendet sich mit einem von drei Rückgabewerten:
-
•
0
- dieser Rückgabewert bedeutet, dass die Änderung erfolgreich abgeschlossen wurde.
-
•
1
- in diesem Fall hat
mkvpropedit(1)
mindestens eine Warnung ausgegeben, das Ändern wurde aber fortgesetzt. Einer Warnung wird der Text »Warning:« vorangestellt. Abhängig von den aufgetretenen Problemen können die resultierenden Dateien in Ordnung sein oder nicht. Dem Anwender wird nachdrücklich geraten, sowohl die Warnung als auch die resultierenden Dateien zu überprüfen.
-
•
2
- dieser Rückgabewert wird benutzt, nachdem ein Fehler aufgetreten ist.
mkvpropedit(1)
wird gleich nach der Ausgabe der Fehlermeldung abgebrochen. Fehlermeldungen reichen von falschen Befehlszeilenargumenten über Lese-/Schreibfehler bis hin zu beschädigten Dateien.
UMWANDLUNGEN VON TEXTDATEIEN UND ZEICHENSÄTZEN
Für eine tiefer gehende Diskussion darüber, wie die Programme in der MKVToolNix-Sammlung die Umwandlung von Zeichensätzen, Eingabe-/Ausgabecodierung, Kommandozeilenzeichensätze und Konsolenzeichensätze handhaben, sei auf den Abschnitt »Umwandlungen von Textdateien und Zeichensätzen« in der Handbuchseite von
mkvmerge(1)
verwiesen.
UMGEBUNGSVARIABLEN
mkvpropedit(1)
verwendet die Standardvariablen, die die Locale des System bestimmen (d.h.
LANG
und die
LC_*-Familie). Zusätzliche Variablen:
MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG und ihre Kurzform MTX_DEBUG
-
Der Inhalt wird behandelt, als ob er mit der Option
--debug
übergeben worden wäre.
MKVPROPEDIT_DEBUG, MKVTOOLNIX_ENGAGE und ihre Kurzform MTX_ENGAGE
-
Der Inhalt wird behandelt, als ob er mit der Option
--engage
übergeben worden wäre.
SIEHE AUCH
mkvmerge(1),
mkvinfo(1),
mkvextract(1),
mkvtoolnix-gui(1)
WWW
Die neuste Version kann immer auf
m[blue]der MKVToolNix-Homepagem[][1]
gefunden werden.
AUTOR
Moritz Bunkus <moritz@bunkus.org>
-
Entwickler
FUßNOTEN
- 1.
-
der MKVToolNix-Homepage
-
https://mkvtoolnix.download/