下载帮

您现在的位置是:首页 > 教程分享 > 经验技巧

经验技巧

MKVtoolnix使用.bat批量处理文件,连续剧批量修改默认音轨、音轨属性和字幕顺序

2023-06-03 00:08经验技巧

工具和版本

windows10 x64

MkvToolNix v67.0.0

待输出的Mkv格式文件,要求是同类型的文件,比如从迅雷下载下来同一来源的连续剧

步骤

一、添加文件

打开MkvToolNix GUI,添加输入文件,选中一个待输出的文件A

二、编辑音轨

选中音轨,修改语言和默认音轨标记

三、复制代码

混流器-显示命令行,复制命令行信息。没试过不转义的代码能不能在cmd中运行,我是直接用windows的


 

四、参数化

1.创建文本文件

2.FOR 参数 %%变量名(a) IN (相关文件或命令) DO 执行的命令 

3./L  表示迭代数值范围 ,使用迭代变量设置起始值 (Start#),
然后逐步执行一组范围的值,直到该值超过所设置的终止值 (End#)。
/L 将通过对 Start# 与 End# 进行比较来执行迭代变量。
如果 Start# 小于 End#,就会执行该命令。
如果迭代变量超过 End#,则命令解释程序退出此循环。
还可以使用负的 Step# 以递减数值的方式逐步执行此范围内的值。例如:
(1,1,5) 生成序列 1 2 3 4 5,
而 (5,-1,1) 则生成序列 (5 4 3 2 1)。

语法是:
for /L %% Variable in (Start#,Step#,End#) do Command

例如:

for /l %%a in (1,1,9) do

保存执行看效果,他会打印从1 2 3 4 5 6 7 8 9 这样9个数字

(1,1,9)这个参数也就是表示从1开始每次加1直到9终止!
 

变量名设置为:%%a ,  输出时:"%%a"   。如果连续剧集名1-9集为001-009集,即变量输出时设置为:%%a   、00"%%a"

6.把文本文件改名为B.bat  (以下为集名001-009集时的代码)  .bat批量脚本中有中文时乱码解决方法看最后。

for /l %%a in (1,1,9) do (
  "D:\Program Files\视频音轨\mkvtoolnix-64-bit-67.0.0-绿色版\mkvtoolnix\mkvmerge.exe" --ui-language zh_CN --priority lower --output ^"D:\aDrive\皆大欢喜\皆大喜欢.古装版.粤国双语.720p.EP00"%%a".mkv^" --language 0:zh --display-dimensions 0:1280x720 --language 1:zh --track-name ^"1:粤语^" --default-track-flag 1:no --language 2:zh --track-name ^"2:国语^" --default-track-flag 2:yes --sub-charset 3:UTF-8 --language 3:zh --track-name ^"3:简体^" --sub-charset 4:UTF-8 --language 4:zh --track-name ^"4:繁体^" ^"^(^" ^"D:\aDrive\皆大欢喜2\皆大喜欢.古装版.国粤双语.EP00"%%a".mkv^" ^"^)^"  --track-order 0:0,0:2,0:1,0:3,0:4
) pause

以下为剧集名001-009--010--099--100--327集。请按如下代码

for /l %%a in (1,1,9) do (
"D:\Program Files\视频音轨\mkvtoolnix-64-bit-67.0.0-绿色版\mkvtoolnix\mkvmerge.exe" --ui-language zh_CN --priority lower --output ^"D:\aDrive\皆大欢喜new\皆大喜欢.古装版.粤国双语.720p.EP00"%%a".mkv^" --language 0:zh --display-dimensions 0:1280x720 --language 1:zh --track-name ^"1:粤语^" --default-track-flag 1:no --language 2:zh --track-name ^"2:国语^" --default-track-flag 2:yes --sub-charset 3:UTF-8 --language 3:zh --track-name ^"3:简体^" --sub-charset 4:UTF-8 --language 4:zh --track-name ^"4:繁体^" ^"^(^" ^"D:\aDrive\皆大欢喜\皆大喜欢.古装版.国粤双语.EP00"%%a".mkv^" ^"^)^" --track-order 0:0,0:2,0:1,0:3,0:4
)

for /l %%a in (10,1,99) do (
"D:\Program Files\视频音轨\mkvtoolnix-64-bit-67.0.0-绿色版\mkvtoolnix\mkvmerge.exe" --ui-language zh_CN --priority lower --output ^"D:\aDrive\皆大欢喜new\皆大喜欢.古装版.粤国双语.720p.EP0"%%a".mkv^" --language 0:zh --display-dimensions 0:1280x720 --language 1:zh --track-name ^"1:粤语^" --default-track-flag 1:no --language 2:zh --track-name ^"2:国语^" --default-track-flag 2:yes --sub-charset 3:UTF-8 --language 3:zh --track-name ^"3:简体^" --sub-charset 4:UTF-8 --language 4:zh --track-name ^"4:繁体^" ^"^(^" ^"D:\aDrive\皆大欢喜\皆大喜欢.古装版.国粤双语.EP0"%%a".mkv^" ^"^)^" --track-order 0:0,0:2,0:1,0:3,0:4
)
for /l %%a in (100,1,327) do (
"D:\Program Files\视频音轨\mkvtoolnix-64-bit-67.0.0-绿色版\mkvtoolnix\mkvmerge.exe" --ui-language zh_CN --priority lower --output ^"D:\aDrive\皆大欢喜new\皆大喜欢.古装版.粤国双语.720p.EP"%%a".mkv^" --language 0:zh --display-dimensions 0:1280x720 --language 1:zh --track-name ^"1:粤语^" --default-track-flag 1:no --language 2:zh --track-name ^"2:国语^" --default-track-flag 2:yes --sub-charset 3:UTF-8 --language 3:zh --track-name ^"3:简体^" --sub-charset 4:UTF-8 --language 4:zh --track-name ^"4:繁体^" ^"^(^" ^"D:\aDrive\皆大欢喜\皆大喜欢.古装版.国粤双语.EP"%%a".mkv^" ^"^)^" --track-order 0:0,0:2,0:1,0:3,0:4
)

pause

五、运行



注意事项:

一、bat批量脚本中有中文时乱码请用以下步骤:

编辑批处理文件时,以ANSI方式编辑即可。若以别的方式(如UTF-8)编辑了批处理,转换成ANSI格式即可。

windows自带的记事本保存文件时即可选择编码方式。

将此脚本文件另存为

查看编码:UTF-8格式。

将编码格式选择ANSI

重新运行此脚本程序,发现汉字不再是乱码了。

 

注意事项二、
 

bat批量代码调整视频默认音轨时。需要注意原视频h.264轨道的id是否为0

如以下h.264轨道视频的id是4,先把h.264的id改为0 ( 使用MKVtoolnix较新的版本,先把视频默认转换一遍)  再执行调整音轨代码的批量bat代码。

 

文章评论