同じ方法で作成された MKV ファイルがたくさんあります。
- 1つのビデオトラック
- オーディオトラック1は英語です
- オーディオトラック2はドイツ語です
ここで、オーディオ トラックの順序を変更して、ドイツ語がトラック 1、英語がトラック 2 になるようにしたいと思います。フォルダー内のすべての MKV ファイルでこれを実現するにはどうすればよいでしょうか。
答え1
してくださいないmkvpropedit
受け入れられた回答のようにトラックを並べ替えるために使用します。これによりないとは異なり、適切に順序付けますmkvmerge
。
MediaInfo などのツールでビデオを調べると、フィールドがあることがわかりStreamOrder
ますID
。
ID
私の経験からすると (これは苦い経験から学んだことですが)、を使用するとトラックのみが変更されますmkvpropedit
。 は変更されないStreamOrder
ため、MKVToolnix もトラックが順序付けられていると認識しません。
mkvmerge
代わりに、を指定できる を使用します--track-order
。例:
mkvmerge --output "your_file (1).mkv" "(" "your_file.mkv" ")" --track-order 0:0,0:2,0:1
は0:0
ビデオ トラックを示し、0:2
はドイツ語のトラック、 は0:1
英語のトラックになります。
これが将来の読者の役に立つことを願っています。
答え2
解決策を見つけ、パッケージmkvmerge
から次のスクリプトをビルドしましたmkvtoolnix
。
#!/bin/bash
for f in *.mkv
do
mkvpropedit -v "$f" --edit track:2 --set track-number=3 --edit track:3 --set track-number=2
done
これは、フォルダー内のすべての mkv ファイルをループします (すべてが同じ方法で作成され、同じ方法で編集する必要があることを前提としています)。通常、最初のトラックはビデオ トラックであるため、2 番目のトラックを 3 番目のトラック ( --edit track:2 --set track-number=3
) に変更し、3 番目のトラックを 2 番目のトラック ( --edit track:3 --set track-number=2
) に変更します。
答え3
これは、というプログラムで実行できます。MKVツールNix
3 つのオーディオ ストリームがロードされた MKV サンプル ファイル:
この例でわかるように、オーディオ ストリームは 3 つあります。TrueHD、DTS-HD、AC-3 です。これは、英語やドイツ語の場合と同じ状況になります。
ドイツ語のオーディオ ストリームをこのように一番上にドラッグするだけです。例として、AC-3 を一番上のストリームに移動します。
しかし、これによって行われるのは、AC-3 をオーディオ順序の先頭に移動するだけです...ただし、ファイルの開始時に再生されるデフォルトのトラックは TrueHD Atmos のままであることに気付くでしょう。
AC-3(または状況によってはドイツ語)をデフォルトのオーディオストリームにするには、ドイツ語のトラックをクリックし、右側のプロパティで設定します。デフォルトトラックフラグとしてはい
すべて終わったら、多重化を開始します。これにより、新しい調整を加えた新しいファイルが作成されます。その後、古いファイルを破棄できます。
答え4
トラックを新しいファイルに再結合せずに、mkv ファイル内のトラックを並べ替えることはできません。最近、まったく同じ問題に遭遇しましたが、解決策を見つけました。選択したフォルダー内のすべての mkv ファイルを処理し、並べ替えられたオーディオ トラックを含む同じ名前の新しい mkv ファイルを新しい場所に出力する、オーディオ トラックを並べ替えるバッチ ファイルを作成しました。Windows 用の MKVToolNix キット (最新バージョン) の mkvmerge.exe を使用します。そして、確かに、mkvproedit を使用してフラグやプロパティを変更する場合と比較して、トラックの再結合には時間がかかります。まだご興味がある場合はお知らせください。