mkvtoolnix
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| mkvtoolnix [2014-01-01 21:29:14] – [mkvmerge-Beispiele] manfred | mkvtoolnix [2024-07-01 12:06:48] (aktuell) – [Audio- und Videospuren syncronisieren] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== MKVToolnix ====== | ||
| + | |||
| + | siehe auch: [[MP4]] | ||
| + | |||
| + | Das Video-Container-Format mit dem Namen " | ||
| + | * [[http:// | ||
| + | |||
| + | Set of command-line tools to work with Matroska files Matroska is a new multimedia container format, based on EBML (Extensible Binary Meta Language), which is a kind of binary XML. These tools allow to manipulate Matroska files. | ||
| + | * **mkvmerge** is a tool to create Matroska files from other formats | ||
| + | * **mkvinfo** allows to get information about the tracks in a Matroska file | ||
| + | * **mkvextract** can extract tracks from Matroska files to other formats | ||
| + | |||
| + | |||
| + | ===== MKV -> MP4 ===== | ||
| + | |||
| + | |||
| + | ==== MKV zerlegen ==== | ||
| + | |||
| + | mkvmerge --identify video.mkv | ||
| + | | ||
| + | File ' | ||
| + | Track ID 1: video (V_MPEG4/ | ||
| + | Track ID 2: audio (A_AC3) | ||
| + | |||
| + | mkvextract tracks video.mkv 1: | ||
| + | oder | ||
| + | mkvextract tracks video.mkv 1: | ||
| + | | ||
| + | Extracting track 1 with the CodecID ' | ||
| + | Extracting track 2 with the CodecID ' | ||
| + | Progress: 100% | ||
| + | |||
| + | [[MP4#MP4 zusammen bauen]] | ||
| + | |||
| + | |||
| + | ===== Filmschnitt ===== | ||
| + | |||
| + | Damit die Schnittpunkte genau genug entstehen, ist es wichtig, dass der Film genügend KeyFrame besitzt bzw. das die KeyFrame eng genug beieinander liegen. | ||
| + | |||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | ==== Film zerschneiden ==== | ||
| + | |||
| + | > mkvmerge film.mkv -o split.mkv --split timecodes: | ||
| + | |||
| + | split-001.mkv vom Filmanfang bis Minute 3:33 | ||
| + | split-002.mkv von Minute 3:33 bis 6:27 | ||
| + | split-003.mkv von 6:27 bis Filmende | ||
| + | |||
| + | |||
| + | ==== Filmteile zusammensetzen ==== | ||
| + | |||
| + | > mkvmerge -o sauberer-film.mkv split-001.mkv +split-003.mkv | ||
| + | |||
| + | |||
| + | ===== weitere mkvmerge-Beispiele ===== | ||
| + | |||
| + | mögliche Eingabeformate von // | ||
| + | |||
| + | # mkvmerge -l | ||
| + | |||
| + | So werden eine Videospur und eine Tonspur in einen Matroska-Container gemuxt: | ||
| + | |||
| + | # mkvmerge --title "Film Name" -o neuer_Film.mkv Film_ohne_Ton.avi Tonspur.ac3 | ||
| + | |||
| + | # mkvmerge --default-language ger --aspect-ratio 1:16:9 -o neuer_Film.mkv Film_ohne_Ton.mkv Tonspur.mp3 | ||
| + | |||
| + | # mkvmerge --default-language ger --display-dimensions 1:1024x576 -o neuer_Film.mkv Film_ohne_Ton.avi Tonspur.m4a | ||
| + | |||
| + | So wird ein Film aus einem unerwünschten Container (hier MPEG) in einen Matroska-Container gemuxt: | ||
| + | |||
| + | # mkvmerge -o Film.mkv Film_mit_falschem_Container.mpg | ||
| + | |||
| + | Mit mkvinfo funktioniert das natürlich nur bei MKV-Dateien! | ||
| + | |||
| + | # mkvinfo Film.mkv | ||
| + | |||
| + | Audio- und Videospur aus einer MKV-Datei unverändert extrahieren | ||
| + | |||
| + | # mkvextract tracks Film.mkv 1: | ||
| + | |||
| + | |||
| + | Die grafische Oberfläche von // | ||
| + | |||
| + | |||
| + | === Audio- und Videospuren syncronisieren === | ||
| + | |||
| + | # mplayer FILM_videospur.mkv -vo null -ao null -identify -frames 0 -nocache 2>/ | ||
| + | ID_LENGTH=572.52 | ||
| + | |||
| + | # mplayer FILM_audiospur -vo null -ao null -identify -frames 0 -nocache 2>/ | ||
| + | ID_LENGTH=596.49 | ||
| + | |||
| + | # mkvmerge --identify Film_out_of_sync.mkv | ||
| + | File ' | ||
| + | Track ID 1: video (V_MPEG4/ | ||
| + | Track ID 2: audio (A_AAC) | ||
| + | |||
| + | //Track ID// der Audio-Spur ermitteln: | ||
| + | # mkvmerge --identify Film_out_of_sync.mkv | awk '/ | ||
| + | 2 | ||
| + | |||
| + | * Track ID der Audiospur: **2** | ||
| + | * versetzter Start zwischen Audio- und Videospur: **0** | ||
| + | * Länge der Videospur: **572.52** | ||
| + | * Länge der Audiospur: **596.49** | ||
| + | |||
| + | # mkvmerge -y 2: | ||
| + | oder | ||
| + | # mkvmerge -y 2:0,24/25 -o Film_in_sync.mkv Film_out_of_sync.mkv | ||
| + | oder | ||
| + | # mkvmerge -y 2:0,0.96 -o Film_in_sync.mkv Film_out_of_sync.mkv | ||
| + | |||
| + | Der Parameter " | ||
| + | Ihm müssen 3 Werte übergeben werden: | ||
| + | - Track ID (ich verwende hier immer die ID der Audiospur) | ||
| + | - Verschiebepunkt (beide Spuren sind gleich lang aber zueinander versetzt) | ||
| + | - Laufzeitdifferenz (beide Spuren sind unterschiedlich lang bzw. schnell) | ||
| + | |||
| + | Wir werden die Laufzeit der Tonspur anpassen und geben deshalb die //Track ID// der Tonspur (in diesem Fall " | ||
| + | Hinter dem Doppelpunkt wird eine " | ||
| + | gibt es hier nur eine Verschiebung zwischen den Spuren, dann genügt hier die entsprechende Zeitverschiebung, | ||
| + | mehr Parameter sind dann nicht nötig. | ||
| + | |||
| + | In diesem Beispiel ist es aber etwas komplizierter, | ||
| + | Ich habe einen 1080p-Film mit 24 Bildern pro Sekunde in ein 576-Zeilen-Film (AVC-DVD-Profil / Level 3.0) transcodiert. | ||
| + | |||
| + | Das hat zur Folge, dass jetzt 25 Bilder statt 24 Bilder pro Sekunde abgespielt werden (das ist normal so, siehe [[multimedia# | ||
| + | daraus ergibt sich eine um ca. 4% schnellere Videospur. Allerdings ist die Tonspur immer noch genauso lang wie vorher... | ||
| + | |||
| + | Deshalb muss hier noch ein Wert für den Laufzeitunterschied angegeben werden, in diesem Fall ist das " | ||
| + | Man kann hier einen Bruch oder auch eine Fließkommazahl (" | ||
| + | Der Bruch kann auch aus den gemessenen Laufzeiten, der beiden separaten Spuren bestehen: " | ||
| + | |||
| + | Wenn Bild und Ton zusammengesetzt werden soll, wobei die Tonspur im Film erst 21 Sekunden (21000 Millisekunden) später beginnen soll: | ||
| + | > mkvmerge --identify Ton.mkv | awk '/ | ||
| + | 0 | ||
| + | > mkvmerge -o Film.mkv Bild.mkv -y 0:21000,1/1 Ton.mkv | ||
| + | |||
| + | |||
| + | ===== WICHTIG: ===== | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | Man vermeidet Probleme, wenn man die Tonspur, die für einen Film gedacht ist, nicht in einen // | ||
| + | sondern in einen // | ||
| + | |||
| + | Zum Beispiel so: | ||
| + | # faac -w --tns -q 160 -o Tonspur.m4a Tonspur.wav | ||
| + | |||
