Jak zamienić pierwszy i drugi strumień audio w MKV w systemie Linux?

10

Używam plexa. Wydaje się, że Plex ignoruje domyślny strumień audio (na Roku) i zamiast tego używa tylko pierwszego strumienia audio. To jest na moje testy przy użyciu mkvpropedit.

Ponieważ Plex nie obsługuje obecnie zmiany źródeł dźwięku na klientach poza siecią LAN, chciałbym zmienić kilka moich plików, aby bieżące drugie źródło dźwięku było pierwsze?

Jaki jest najlepszy sposób zamiany strumieni audio w MKV w systemie Linux, takim jak Ubuntu?

użytkownik191723
źródło

Odpowiedzi:

14

W przypadku FFmpeg powinno to być dość proste. Upewnij się, że pobierasz wersję statyczną ze strony pobierania i nie korzystasz z wersji repozytorium Ubuntu, która jest dość stara.

Oto polecenie:

ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -map 0:a:0 -c copy output.mkv

Oto, co -maprobi:

  • Pierwszą częścią przed dwukropkiem jest identyfikator wejściowy. Ponieważ mamy tylko jedno wejście, to jest 0.
  • Druga część określa rodzaj strumienia, video lub audio. Jest to opcjonalne, ale zawsze dobrym pomysłem jest określenie typu, w przypadku gdy strumienie wideo i audio nie są poprawnie multipleksowane.
  • Trzecia część to identyfikator strumienia wejściowego. 0będzie pierwszy, a 1drugi, tj. pierwszy strumień wideo oraz drugi i pierwszy strumień audio.
  • Kolejność -mapopcji określa kolejność strumieni w pliku wyjściowym.

Oznacza to, że opuścimy strumień bitów wideo jako pierwszy strumień, a następnie weźmy drugi strumień audio, a następnie pierwszy - w zasadzie zamieniamy strumienie audio.

Użycie tej -c copyopcji gwarantuje, że strumienie bitów zostaną skopiowane i nie zostaną ponownie zakodowane.

Kilka przykładów użycia tej -mapopcji można znaleźć na wiki FFmpeg.

slhck
źródło
Jeśli istnieje tylko jedno wejście rzeczywiście można pominąć identyfikator wejściowego: -map v:0 -map a:1 -map a:0.
deser
7

Wystarczy użyć mkvtool, aby uniknąć, przepakować, ponownie zakodować ... tracić czas.

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

powinno to wystarczyć do zamiany strumienia.

Whoo
źródło