[[Vorlage(Getestet, bionic, )]]

{{{#!vorlage Wissen
[:Pakete installieren: Installation von Programmen]
[:Programme_starten: Starten von Programmen]
[:Terminal: Ein Terminal öffnen]
}}}
[[Inhaltsverzeichnis()]]

[[Bild(./mkvtoolnix_logo.png, 48, align=left)]]
[https://mkvtoolnix.download/ MKVToolNix] {en} stellt eine Reihe von Werkzeugen bereit, um Dateien im freien Containerformat [:Matroska:] zu erzeugen, zu ändern oder zu untersuchen. Der Matroska Multimedia Container ist ein offenes und freies Container-Format. Die Besonderheit ist, dass er eine unbegrenzte Anzahl von Audio-, Video- und/oder Untertitelspuren in einer einzigen Datei beherbergen kann. Es werden eine Vielzahl von Codecs unterstützt.
 
Die Einzelprogramme sind unter der Lizenz [wikipedia:GNU_General_Public_License#GPL_Version_3:GNU GPL v3] veröffentlicht. Die Kernbibliotheken stehen unter der [wikipedia:GNU_Lesser_General_Public_License:GNU LGPL], der Parser unter der [wikipedia:BSD-Lizenz:]. Beide stammen aus dem Projekt Matroska. Weitere Programme desselben Projekts sind [https://matroska.org/downloads/mkvalidator.html MKvalidator] {en} und [https://www.matroska.org/downloads/mkclean.html MKclean] {en}

Eine Alternative zur Erstellung von MKV-Containern kann [:Avidemux:] ab Version 2.6 sein, obwohl Avidemux keine Fehlermeldungen ausgibt und MKVToolNix mehr Einstellungen anbietet.

{{{#!vorlage Hinweis
Die hier genannten Werkzeuge arbeiten grundsätzlich verlustfrei, denn Matroska ist kein [:Codecs:Codec], sondern ein Containerformat.
}}}

= Installation =
[[Bild(Wiki/Icons/synaptic.png, 48, align=right)]]
Die Installation aus den offiziellen Paketquellen erfolgt über die folgenden Pakete [1]:

{{{#!vorlage Paketinstallation
mkvtoolnix, universe, Kommandozeilenwerkzeuge
mkvtoolnix-gui, universe, grafische Oberfläche
}}}

== Fremdquelle ==
Aktuelle Programmversionen kann man aus der Paketquelle der Entwickler beziehen.

Um aus der [:Fremdquelle:] zu installieren, muss man die folgenden [:Paketquellen freischalten:]:

[[Vorlage(Fremd, Quelle, "")]]

{{{deb https://mkvtoolnix.download/ubuntu/ UBUNTU_VERSION main}}}
Beispiel für [:Focal:Ubuntu 20.04 Focal Fossa]:

{{{deb https://mkvtoolnix.download/ubuntu/ focal main}}}

[[Vorlage(Fremdquelle-auth, https://mkvtoolnix.download/gpg-pub-moritzbunkus.gpg)]]

Nach dem Aktualisieren der Paketquellen erfolgt die Installation wie oben angegeben.

= Bedienung =
Die einzelnen Programme liegen als Kommandozeilenwerkzeuge vor, was den Vorteil bietet, diese automatisiert in Shell-Skripten einsetzen zu können. Die Erstellung dagegen kann alternativ auch über eine grafische Oberfläche (GUI) durchgeführt werden. Bei Ubuntu-Varianten mit einem Anwendungsmenü gibt es nach der Installation zwei Einträge [2], und zwar:

 *  ''"Multimedia -> MKV Dateien erstellen (mkvmerge GUI)"'' und 
 *  ''"Multimedia -> Informationen über MKV-Dateien anzeigen (mkvinfo)"''

Möchte man die Kommandozeile nutzen, stehen vier unterschiedliche Befehle im Terminal [3] zur Verfügung. Ein Fünfter dient zum Start der grafischen Oberfläche ''"mkvmerge GUI"''.

{{{#!vorlage Tabelle
<-2 tableclass="zebra_start3" rowclass="titel"> Welches Werkzeug macht was? 
+++
<rowclass="kopf" >Anwendung
Beschreibung
+++
[#mkvmerge mkvmerge]
Dateien in einem Container zusammenfassen
+++
[#mkvextract mkvextract]
Video-, Audio-, Untertitel-Dateien usw. aus dem Container herauslösen (verlustfrei!)
+++
[#mkvpropedit mkvpropedit]
Eigenschaften editieren
+++
[#mkvinfo mkvinfo]
Informationen zum Container auslesen
+++
[#mkvmerge-GUI mmg]
ruft die grafische Oberfläche zu `mkvmerge` aus der Kommandozeile auf
}}}
Etwas verwirrend ist, dass [#mkvinfo mkvinfo] in zwei Fassungen vorhanden ist: mit und ohne grafische Oberfläche. Erstere steht automatisch zur Verfügung, wenn das Paket '''mkvtoolnix-gui''' installiert wird.

== mkvmerge GUI ==
Dieses grafische Programm macht die Erstellung einfach. Prinzipiell muss man nur zwei Spuren (in Form einer Video- und einer Audiodatei) als Quelldateien und eine Ausgabedatei angeben. Das Erstellen einer Matroska-Datei erfolgt über die Schaltfläche ''"Muxen starten"''. Eine andere Variante ist die Umwandlung einer bestehenden Container-Datei in das Matroska-Format.

Wer tiefer in die Materie einsteigen will, dem stehen etliche Optionen zur Verfügung, um das Endergebnis an die gewünschten Eigenschaften anzupassen.

{{{#!vorlage Tabelle
[[Bild(./mkvmergegui_sources.png, x200)]]
[[Bild(./mkvmergegui_attachments.png, x200)]]
[[Bild(./mkvmergegui_global.png, x200)]]
[[Bild(./mkvmergegui_chaptereditor.png, x200)]]
+++
<:>Quellen
<:>Dateianhänge
<:>Globale Optionen
<:>Kapiteleditor
}}}

Weitere Informationen sind in der Dokumentation zu [https://mkvtoolnix.download/doc/mkvtoolnix-gui.html mkvmerge GUI] {en} enthalten.

== Kommandozeilenwerkzeuge =
Die Verwendung auf der Kommandozeile wird unter Umständen leichter, wenn man `-h` oder `--help` an den jeweiligen Befehl anhängt, um eine englische Erklärung zu erhalten.

=== mkvmerge ===
Das Gegenstück zu ''"mkvmerge GUI"''. Die grundsätzliche Syntax lautet:

{{{#!vorlage Befehl
mkvmerge OPTIONEN DATEI
}}}
Drei praktische Beispiele:

 * Eine Videodatei mit Musik unterlegen: {{{#!vorlage Befehl
mkvmerge -o VIDEO_MIT_TON.mkv -A VIDEO_OHNE_TON.mkv TONSPUR.mp3
}}}
 * Eine bestehende AVI-Video-Sammlung in das Matroska-Format umwandeln: {{{#!vorlage Befehl
for i in *.avi; do mkvmerge -o `basename $i .avi`.mkv --language 1:eng $i ; done
}}} Funktioniert u.a. auch mit MP4, MPEG, FLV und OGM, aber nicht mit WMV.
 * Um eine bestehende AVI-Datei mit Kapiteleinträgen zu versehen und zu konvertieren, braucht man zuerst eine Datei '''chapters.txt'''. Beispielinhalt: {{{
CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 01
CHAPTER02=00:05:00.000
CHAPTER02NAME=Chapter 02
CHAPTER03=00:10:00.000
CHAPTER03NAME=Chapter 03
CHAPTER04=00:15:00.000
CHAPTER04NAME=Chapter 04
CHAPTER05=00:20:00.000
CHAPTER05NAME=Chapter 05
}}} Dann kann man mit folgendem Befehl die Ursprungsdatei umwandeln: {{{#!vorlage Befehl
mkvmerge VIDEO.avi --default-language de --compression -1:none --chapters chapters.txt -o VIDEO.mkv
}}} Quelle: [https://savvyadmin.com/adding-chapters-to-videos-using-mkv-containers/ Adding Chapters to Videos Using MKV Containers] {en}

Weitere Informationen sind in der [:man:Manpage] und in der Dokumentation zu [https://mkvtoolnix.download/doc/mkvmerge.html mkvmerge] {en} enthalten.

=== mkvextract ===
Wie der Name schon sagt, kann man mit diesem Werkzeug eine oder mehrere der im Container enthaltenen Dateien herauslösen. Die grundsätzliche Syntax lautet:

{{{#!vorlage Befehl
mkvextract OPTIONEN DATEI
}}}
Als Beispiel ein Befehl, um sowohl die Video- als auch die Tonspur eines Matroska-Containers zu extrahieren. Voraussetzung sind Kenntnisse der internen Struktur des Containers, die sich mit [#mkvinfo mkvinfo] ermitteln lassen.

{{{#!vorlage Befehl
mkvextract tracks VIDEO.mkv 1:VIDEO.mpv 2:VIDEO.ac3
}}}
Weitere Informationen sind in der [:man:Manpage] und in der Dokumentation zu [https://mkvtoolnix.download/doc/mkvextract.html mkvextract] {en} enthalten.

=== mkvpropedit ===
Das Matroska-Format bietet mit der Einbindung von [:Metadaten:] die Möglichkeit, eine Videosammlung katalogisierbar zu machen. Zum besseren Verständnis muss angemerkt werden, dass ein Matroska-Container – neben dem  Titel und den Sprachen von Audiospuren und Untertiteln – keine weiteren Felder für Metadaten enthält. Stattdessen werden XML-Dateien verwendet, die in den Container eingebunden werden. Dadurch wird der Umgang mit Metadaten leider etwas erschwert (siehe [https://seegras.discordia.ch/Blog/matroshka-and-the-state-of-movie-metadata/ Matroska and the State of Movie Metadata] {en}, 09/2013).

Zum Bearbeiten dient mkvpropedit. Die grundsätzliche Syntax lautet:

{{{#!vorlage Befehl
mkvpropedit OPTIONEN DATEI
}}}
Beispiele:

 * Titel setzen: {{{#!vorlage Befehl
mkvpropedit --edit info --set title="Titel des Videos" VIDEO.mkv
}}}
 * Sprache der 1. Tonspur setzen (auch hier sind Kenntnisse der internen Struktur erforderlich): {{{#!vorlage Befehl
mkvpropedit --edit track:a1 --set language=ger VIDEO.mkv
}}}
 * Alle Metadaten entfernen: {{{#!vorlage Befehl
mkvpropedit VIDEO.mkv --tags all:
}}}
Weitere Informationen sind in der [:man:Manpage] und in der Dokumentation zu [https://mkvtoolnix.download/doc/mkvpropedit.html mkvpropedit] {en} enthalten. Mit [#Links JMkvpropedit] (siehe unten) steht alternativ eine grafische Oberfläche zur Verfügung, die auf [:Java:] basiert und damit plattformübergreifend genutzt werden kann.

=== mkvinfo ===
[[Bild(./mkvinfo_gui.png, 200, align=right)]]
Mkvinfo dient in erster Linie dazu, um Informationen über die Inhalte einer MKV-Containerdatei auszulesen und ist als eigenständige grafische Version über das Anwendungsmenü aufrufbar. Es kann bei etwas besserer Kenntnis der Materie auch zur Kontrolle der eigenen Arbeitsweise dienen.

{{{#!vorlage Befehl
mkvinfo -g DATEI
}}}

Möchte man stattdessen die Kommandozeilenversion nutzen, lautet die Befehl:
{{{#!vorlage Befehl
mkvinfo [OPTIONEN] DATEI
}}}
Weitere Informationen über die möglichen Optionen sind der [:man:Manpage] und der Dokumentation zu [https://mkvtoolnix.download/doc/mkvinfo.html mkvinfo] {en} zu entnehmen.

{{{#!vorlage Hinweis
Der Befehl:

{{{#!vorlage Befehl
mkvmerge -i DATEI.mkv
\}}}
liefert Kurzinformationen über einen Matroska-Container.
}}}

= Problembehebung =
== Hilfe-Funktion ==
Die integrierte Hilfe der grafischen Benutzeroberfläche über [[Vorlage(Tasten, F1)]] enthält eine sehr ausführliche Hilfe-Datei. Diese liegt z.Zt. nur in englisch, spanisch und chinesisch vor. Wem das Darstellungsfenster zu klein vorkommt, kann die Hilfe auch direkt aufrufen. Dazu im Browser die Datei '''/usr/share/doc/mkvtoolnix-gui/guide/en/mkvmerge-gui.html''' aufrufen und für die spätere Verwendung ein Lesezeichen anlegen.
 
= Links =
[[Bild(./matroska_logo.png, 64, align=right)]]
== Intern ==
 * [:Matroska:] - Details zum Multimediaformat
 * [:Videodateien_umwandeln:] {Übersicht} - Übersichtsartikel

== Extern ==
 * [https://mkvtoolnix.download/ Projektseite] {en}
  * [https://mkvtoolnix.download/doc/ Dokumentation] {en}
  * [https://www.bunkus.org/blog/ Blog] {en} - Neuigkeiten
  * [https://gitlab.com/mbunkus/mkvtoolnix Quellcode] {en}
 * [https://www.matroska.org/downloads/test_w1.html Matroska Test Suite] {dl} - Beispieldateien
 * Beispielanleitungen:
  * [https://privatstrand.dirkschmidtke.de/2011/03/14/o-matroska-mkv-dateien-schneiden-und-demuxen/ O Matroska: mkv-Dateien schneiden, zusammensetzen und demuxen] {de} - Blogbeitrag, 11/2013
 * [ubuntu_fr:mkvtoolnix: MKVToolnix] - franz. Ubuntu-Wiki
  * [ubuntu_fr:mkv_extractor_gui_v4_:MKV_Extraktor_Gui] - grafische Oberfläche für mkvextract (PPA verfügbar)
 * [github:BrunoReX/jmkvpropedit:JMkvpropedit] {en} - grafische Oberfläche ([https://forum.doom9.org/showthread.php?t=163753 Bilder] {en}) für mkvpropedit, benötigt [:Java:]

#tag: Multimedia, MKV, Matroska, rip, Codec, Containerformat