Wie tausche ich den ersten und zweiten Audiostream in einem MKV in einem Linux-basierten System aus?

10

Ich benutze Plex. Plex scheint den Standard-Audiostream (in Roku) zu ignorieren und verwendet stattdessen nur den ersten Audiostream. Dies ist nach meinem Test mit mkvpropedit.

Da Plex das Ändern von Audioquellen auf Clients außerhalb des LAN derzeit nicht unterstützt, möchte ich einige meiner Dateien so ändern, dass die aktuelle zweite Audioquelle die erste ist.

Was ist der beste Weg, um Audio-Streams in einer MKV auf einem Linux-basierten System wie Ubuntu auszutauschen?

user191723
quelle

Antworten:

13

Mit FFmpeg sollte dies ziemlich einfach sein. Stellen Sie sicher, dass Sie einen statischen Build von der Download-Seite herunterladen und nicht die Ubuntu-Repository-Version verwenden, 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

Folgendes -maptut es:

  • Der erste Teil vor dem Doppelpunkt ist die Eingabe-ID. Da wir nur einen Eingang haben, ist es 0.
  • Der zweite Teil spezifiziert die Art des Streams, vVideos oder aAudios. Dies ist optional, aber es ist immer eine gute Idee, den Typ anzugeben, falls Video- und Audiostreams nicht richtig gemultiplext werden.
  • Der dritte Teil ist die ID des Eingabestreams. 0wird der erste und 1der zweite sein, dh der erste Videostream und der zweite und erste Audiostream.
  • Die Reihenfolge der -mapOptionen bestimmt die Reihenfolge der Streams in der Ausgabedatei.

Dies bedeutet, dass wir den Video-Bitstream als ersten Stream belassen, dann den zweiten Audio-Stream und dann den ersten nehmen - im Wesentlichen tauschen wir die Audio-Streams aus.

Durch die Verwendung der -c copyOption wird sichergestellt, dass die Bitströme kopiert und nicht neu codiert werden.

Einige Beispiele zur Verwendung der -mapOption finden Sie im FFmpeg-Wiki.

slhck
quelle
Wenn es nur ein Eingang ist kann man tatsächlich den Eingang ID auslassen: -map v:0 -map a:1 -map a:0.
Dessert
7

Verwenden Sie einfach mkvtool, um Zeitverschwendung zu vermeiden, neu zu packen, neu zu kodieren.

mkvpropedit -v movie.mkv -v --edit track:2 --set track-number=3 --edit track:3 --set track-number=2

Dies sollte ausreichen, um den Stream zu tauschen.

Wer?
quelle