我有一堆 MKV 文件,它们都是以相同的方式制作的:
- 一个视频轨道
- 音轨 1 是英文
- 音轨 2 是德语
现在我想更改音轨顺序,使德语为音轨 1,英语为音轨 2。如何对文件夹中的所有 MKV 文件实现此操作?
答案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
这可以通过一个名为MKVToolNix
已加载 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 更改标志和属性相比,重新合并音轨确实需要一些时间。如果您仍然感兴趣,请告诉我。