更改 MKV 文件中的音轨顺序

更改 MKV 文件中的音轨顺序

我有一堆 MKV 文件,它们都是以相同的方式制作的:

  • 一个视频轨道
  • 音轨 1 是英文
  • 音轨 2 是德语

现在我想更改音轨顺序,使德语为音轨 1,英语为音轨 2。如何对文件夹中的所有 MKV 文件实现此操作?

答案1

请这样做不是用于mkvpropedit对曲目进行排序,就像在接受的答案中一样。这将不是正确地排列它们,不像mkvmerge

如果您使用 MediaInfo 之类的工具检查视频,您会看到有一个StreamOrderandID字段。

在此处输入图片描述

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 更改标志和属性相比,重新合并音轨确实需要一些时间。如果您仍然感兴趣,请告诉我。

相关内容