工具和版本
windows10 x64
MkvToolNix v73
文本编辑器
待输出的Mkv格式文件,要求是同类型的文件,比如从迅雷下载下来同一来源的连续剧
步骤
一、添加文件
打开MkvToolNix GUI,添加输入文件,选中一个待输出的文件A
二、编辑音轨
选中音轨,修改语言和默认音轨标记
三、复制代码
混流器-显示命令行,复制命令行信息。没试过不转义的代码能不能在cmd中运行,我是直接用windows的
四、修改代码和参数化
方案一:需要放置bat文件到待转换视频的文件夹
1.创建文本文件
2.套个for循环,其中(*.mkv)表示读取入参中的mkv后缀的文件
3.提取传入和传出目录出来,表示为toPath、sourcePath
4.把input的文件名变量修改为随变量i插入,在cmd中%%i表示i变量。至此,传入目录和文件表示为%sourcePath%%%i
5.把ouput的文件名变量修改为跟随变量%%~ni表示读取变量i中的前缀名,加上.mkv就是完整的文件名了。至此,传出目录和文件表示为%toPath%%%~ni.mkv
6.把文本文件改名为B.bat并放置在待转换视频的文件夹
@echo off
echo "欢迎来到我的BAT!"
set toPath=C:\Users\bingo\Videos\Captures\
set sourcePath=D:\download\baidu\aa\
for %%i in (*.mkv ) do (
D:\software\MKVToolNix\mkvmerge.exe --ui-language zh_CN --priority lower --output ^"%toPath%%%~ni.mkv^" --language 0:und --display-dimensions 0:640x480 --language 1:ru --track-name ^"1:国语^" --default-track-flag 1:no --language 2:ja --track-name ^"2:日语^" --language 3:zh --track-name ^"3:粤语^" --default-track-flag 3:yes ^"^(^" ^"%sourcePath%%%i^" ^"^)^" --track-order 0:0,0:3,0:1,0:2
)
pause
方案二:bat文件可以放置在任意文件夹
原理和方案一差不多,只是在遍历文件的时候已经提前指定了文件夹
@echo off
echo "欢迎来到我的BAT!"
set toPath=C:\Users\bingo\Videos\Captures\
set sourcePath=E:\bbb\
for %%i in (%sourcePath%*.mkv ) do (
echo %%i
D:\software\MKVToolNix\mkvmerge.exe --ui-language zh_CN --priority lower --output ^"%toPath%%%~ni.mkv^" --language 0:und --display-dimensions 0:640x480 --language 1:ja --track-name ^"1:日语^" --default-track-flag 1:no --language 2:ru --track-name ^"2:俄语^" --language 3:zh --track-name ^"3:粤语^" --default-track-flag 3:yes ^"^(^" ^"%%i^" ^"^)^" --track-order 0:0,0:3,0:1,0:2
)
pause
五、运行
把待处理的文件A拖到 B.bat,就会批量执行所在文件夹中的视频文件了
部分借鉴博文(引用博文内容太久,我是按照自己的理解重写了一部分代码)
[转载] 关于mkvtoolnix批量处理的 - 梦小天 - 博客园文章来源:https://www.toymoban.com/news/detail-684676.html
python 批量提取 mkv 视频文件内嵌 srt 字幕 - 思创斯聊编程文章来源地址https://www.toymoban.com/news/detail-684676.html
到了这里,关于使用Visual Basic和MkvToolnix批量修改MKV视频音轨属性并重新混流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!