牛轧糖 发表于 2022-2-24 20:03:27

【技术交流】如何批量合成MKV格式视频!!


相信做过合成的朋友应该都不陌生MKVToolNix GUI,这个软件可以很方便的把各种格式的视频/音频/字幕/章节/字体/封面等等混在一起合成一个MKV视频文件,也就是"混流"的工作。这款工具体验非常好,我这几年一直在用,但美中不足的是没办法直接批量合成,当我们要处理的资源集数很多时,比如火影忍者疾风传这种有500集的大长篇,用这个软件一集集的合成就会很痛苦,因为你每合成一集都需要导入对应集数的片源、音频、字幕及其他文件,按这种方式,浪费的时间就会非常多。其实像这种只有集数变化的单一变量处理方式,用批处理就完全可以代替人工了。刚开始接触制作的时候没意识到批处理的重要性,那半年的合成全是一集集的手工处理,时间开销太大,有一天在合成的时候就想着能不能一次性解决问题,在网上找了大半天,包括逛了很多影视论坛的技术区都没有这方面的分享,于是就决定自己动手,了解批处理的命令行后,觉得可以用for循环解决,于是自己动手写了一条命令,一直用到今天。现在分享给大家,使用这种办法保证能节约TV合成时间。如果你有更好的方式,也欢迎在帖子下留言分享。

1.先手动合成一集作为后续集数的参考模板

这里以最近在制作的添加BGM混音及对应字幕版福建文艺配音奈克瑟斯为例。如上图所示,先把不同路径的视频/音频/字幕以及其他文件(如果有)导入,右侧属性设置轨道名-语言-以及其他(有需要就设置,没有可以直接跳过)。
PS:即使不是mkv格式的片源也可以重新混流成mkv,所以以后不要只找mkv格式的了,mkv不代表高清,只是一种封装方式而已,任何格式都可以重新混流成mkv。

2.点击左上角混流-显示命令行


3.点击复制到粘贴板复制命令行


4.在桌面新建一个TXT文本文件,点击编辑将命令行复制进去,在头部添加for循环,并修改变量名为i%%

在复制的命令行前面添加"for /L %%i in (1,1,37) do ",其中"for"代表循环;“/L”参数表示按某个规律输出数字序列,这里是升序;"%%i"是变量,这里代表每一集的集数,也就是括号里的从1到37;"in (1,1,37)"代表循环从1开始,每次增加1也就是步长为1递增到37为止;"do"后面加个空格后紧跟要循环的命令,这里我们要做的批处理合成视频,那后面的命令就是我们刚才从MKVToolNix GUI复制的命令行;最后将复制的命令行里面所有的数字修改成变量"%%i",这样这个批处理就会根据括号(1,1,37)从1开始每次增加1执行到37为止。这里要特别注意,视频/音频/字幕的文件名序号前不要有0,比如01,010,一定要是1或者10,因为变量是从1开始,如果标题名是01的话就会因为不匹配而报错。

5.保存退出将后缀名修改为bat,双击或者右键以管理员方式运行,之后命令行会自动开始处理。


以上就是这次分享的全部内容,不管是多少条音轨和字幕都可以实现,希望能解决大家的痛点,有不会的地方可以留言,我会找时间回复。

(测试环境:win10,其他版本效果未知,请知悉)

回复查看本次演示命令行写法,大家可直接复制根据上面的内容做相关修改即可。



**** Hidden Message *****

我要上暂停 发表于 2022-2-24 21:58:06

批量是必要操作,好东西,学习学习

斯人若彩虹 发表于 2022-2-24 22:41:15

这个软件很好,就是不能批量操作很麻烦,楼主太厉害了,学习下

lch777 发表于 2022-2-24 22:49:19

批量合成确实事半功倍,学习了

缘分 发表于 2022-2-25 08:23:29

之前有人分享了一个软件,没有用for循环,是复制一条命令,然后自动帮你写后面的,这个就方便那些不会用for循环的人使用,50个视频,就50条命令,不过50条自己弄的话,也得半天了。

xlizhichaox 发表于 2022-2-25 09:32:17

我是用的notepad++   进行的列编辑,进行递增

逍遥黑暗人生 发表于 2022-2-25 12:29:13

这个倒是方便很多

小星佟 发表于 2022-2-25 12:52:29

方法很省事不错啊 赞一个

whq19911224 发表于 2022-2-25 13:34:14

我都是mmg一个一个来 出错概率低

牛轧糖 发表于 2022-2-25 14:01:26

whq19911224 发表于 2022-2-25 13:34
我都是mmg一个一个来 出错概率低

其实批处理比手动的出错概率更低
页: [1] 2 3
查看完整版本: 【技术交流】如何批量合成MKV格式视频!!