LinuxベースのシステムでMKVの最初と2番目のオーディオストリームを交換するにはどうすればよいですか?


10

プレックスを使用しています。Plexは(Rokuの)デフォルトのオーディオストリームを無視し、代わりに最初のオーディオストリームを使用するようです。これは、mkvpropeditを使用した私のテストによるものです。

Plexは現在、LAN外のクライアントでのオーディオソースの変更をサポートしていないため、いくつかのファイルを変更して、現在の2番目のオーディオソースを最初に変更しますか?

UbuntuなどのLinuxベースのシステムでMKVのオーディオストリームを交換する最良の方法は何ですか?

回答:


13

FFmpegは、これはかなり簡単にする必要があります。ダウンロードページから静的ビルドをダウンロードし、かなり古いUbuntuリポジトリバージョンを使用しないようにしてください。

コマンドは次のとおりです。

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

ここでは何を-mapします:

  • コロンの前の最初の部分は入力IDです。入力が1つしかないので、0です。
  • 2番目の部分は、ストリームのタイプ、videoまたはudioを指定しaます。これはオプションですが、ビデオとオーディオのストリームが正しく多重化されていない場合に備えて、タイプも指定することを常にお勧めします。
  • 3番目の部分は、入力ストリームのIDです。0最初に1、2番目、つまり最初のビデオストリームと2番目と1番目のオーディオストリームになります。
  • 以下のため-mapのオプションは、出力ファイル内のストリームの順序を決定します。

つまり、ビデオビットストリームを最初のストリームとして残し、次に2番目のオーディオストリームを取得してから、最初のストリームを取得します。つまり、本質的にオーディオストリームを入れ替えます。

この-c copyオプションを使用すると、ビットストリームがコピーされ、再エンコードされなくなります。

オプションの使用方法-mapに関するいくつかの例は、FFmpeg wikiにあります。


入力が1つしかない場合は、実際には入力IDを省略できます-map v:0 -map a:1 -map a:0
デザート

7

mkvtoolを使用して、時間の浪費を回避、再パック、再エンコードしてください。

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

これで、ストリームをスワップできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.