web-dev-qa-db-ja.com

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

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

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

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

10
user191723

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

つまり、ビデオビットストリームを最初のストリームとして残し、次に2番目のオーディオストリームを取得し、次に最初のストリームを取得します。つまり、オーディオストリームを交換します。

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

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

14
slhck

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

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

これは、ストリームを交換するのに十分なはずです。

7
Whoo