我有一堆 MKV 文件,它們都是以相同的方式製作的:
- 一個視頻軌道
- 音軌 1 是英語
- 音軌 2 是德語
現在我想更改音軌順序,使德語為軌道 1,英語為軌道 2。
答案1
請這樣做不是用於mkvpropedit
對曲目進行排序,如已接受的答案所示。這會不是與 不同的是,正確地訂購它們mkvmerge
。
如果您使用 MediaInfo 等工具檢查視頻,您可以看到有一個StreamOrder
andID
字段。
根據我的經驗(我通過慘痛的教訓才了解到這一點),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 檔案(假設它們都是以相同的方式建置並且需要以相同的方式編輯)。由於第一個軌道通常是視訊軌道,因此它將第二個軌道變更為第三個軌道 ( --edit track:2 --set track-number=3
),將第三個軌道變更為第二個軌道 ( --edit track:3 --set track-number=2
)。
答案3
這可以透過一個名為的程式來完成MKV工具尼克斯
載入了 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 更改標誌和屬性相比,重新合併軌道需要一些時間。如果您仍然感興趣,請告訴我。