Mit FFmpeg sollte das ziemlich einfach sein. Stellen Sie sicher, dass Sie einen statischen Build von der Download-Seite herunterladen und verwenden Sie nicht die Ubuntu-Repository-Version, die ziemlich alt ist.
Hier ist der Befehl:
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -map 0:a:0 -c copy output.mkv
Hier ist was -map
tut:
- Der erste Teil vor dem Doppelpunkt ist die Eingabe-ID. Da wir nur eine Eingabe haben, ist es
0
. - Der zweite Teil spezifiziert die Art des Streams,
v
ideo odera
Audio. Dies ist optional, aber es ist immer eine gute Idee, auch den Typ anzugeben, falls Video- und Audiostreams nicht korrekt gemultiplext werden. - Der dritte Teil ist die ID des Eingabestreams.
0
wird zuerst sein, und1
der zweite, also der erste Videostream und der zweite und erste Audiostream. - Die Reihenfolge der
-map
options bestimmt die Reihenfolge der Streams in der Ausgabedatei.
Das bedeutet, dass wir den Video-Bitstream als ersten Stream belassen, dann den zweiten Audiostream und dann den ersten nehmen – im Wesentlichen tauschen wir die Audiostreams aus.
Mit -c copy
Option stellt sicher, dass die Bitstreams kopiert und nicht neu codiert werden.
Ein paar Beispiele zur Verwendung des -map
Option finden Sie im FFmpeg-Wiki.
Verwenden Sie einfach mkvtool, um Zeitverschwendung zu vermeiden, neu zu packen, neu zu codieren.
mkvpropedit -v movie.mkv -v --edit track:2 --set track-number=3 --edit track:3 --set track-number=2
das sollte ausreichen, um den Stream auszutauschen.