mkvtoolnix封装操作

许老师技术分享1567

mkvtoolnix命令行批量封装添加字幕及更改默认音轨


mkvtoolnix命令行批量执行,添加字幕及更改默认音轨操作代码


准备工具:mkvtoolnix v58以上,视频文件与相应的字幕文件(影视文件与字幕,两者名称一一对应,放在同一个目录下)

代码:

for /f "delims="  %%x in ('dir /b *.ts') do (
D:\MKV2s\mkvmerge.exe --ui-language zh_CN --output ^"%%~nx.mkv^" --language 0:und --language 1:zh --track-name ^"1:国语^" --default-track 1:no --language 2:zh --track-name ^"2:粤语^" ^"^(^" ^"%%~nx.ts^" ^"^)^" --language 0:und --track-name ^"0:繁体^" ^"^(^" ^"%%~nx.srt^" ^"^)^" --track-order 0:0,0:1,0:2,1:0
)
pause


解释:

%%x :是文件名, %%~nx 是纯文件名,不带扩展名。在代码中,%%x等同于01.ts,%%~nx等同于01。

for /f "delims="  %%x in ('dir /b *.ts') do ():执行循环,('dir /b *.ts')是操作对象,do ()括号内是需要执行的具体操作。

for /f "delims="  %%x in :针对('dir /b *.ts')操作对象中的每一个对象进行do () 操作。

dir /b *.ts :列出本目录下所有扩展名为ts的文件,可以按实际需求修改为其它文件类型,比如 dir /b *.mp4 ,dir /b *.mkv

D:\MKV2s\mkvmerge.exe :mkvtoolnix工具包安装存放的具体目录,按自己实际修改,比如C:\program files\mkvtoolnix\mkvmerge.xe

mkvtoolnix 命令行参数遵循一个规则:1、结果文件名,2、输入源文件名A,3、输入源文件名B,...,每个具体参数以两横线(--)开头,空格分隔。

--ui-language zh_CN :ui语言选中文,可以在运行时输出中文提示,方便查看


 --output ^"%%~nx.mkv^"  :最后封装输出结果为01.mkv,02.mkv,...与源文件在同一目录下,也可以修改为其它目录

^"%%~nx.mkv^" :固定引用格式,尖括号加双引号,第一个参数基本不用修改


第一个输入源文件A参数:

--language 0:und :视频轨语言,纯视频文件没有声音,默认und

 --language 1:zh --track-name ^"1:国语^" --default-track 1:no --language 2:zh --track-name ^"2:粤语^"

:将上面(^"1:国语^",^"2:粤语^")中的(国语,粤语)按自己需求修改音频轨名称,因为这里只有两条音轨,

第一条国语音轨设定了不是默认值:--default-track 1:no  ,第二条粤语音轨就成了默认值。

如果有三条以上音轨,可以修改为:

 --language 1:zh --track-name ^"1:央视国语^" --default-track 1:no --language 2:zh --track-name ^"2:粤语^" --default-track 2:yes --language 3:zh --track-name ^"3:台配国语^" --default-track 3:no --language 4:ja --track-name ^"4日语^" --default-track 4:no


--language 1:zh --track-name ^"1:央视国语^" --default-track 1:no 第一音频轨是中文国语,不设定为默认

--language 2:zh --track-name ^"2:粤语^" --default-track 2:yes 第二音频轨是中文粤语,设定为默认

第三、四条音频轨分别是中文与日文,不设定为默认。

注意一下,--language 3:zh这个zh是语言代码,所有轨道,不熟悉的都可以直接使用und,未定义。


 ^"^(^" ^"%%~nx.ts^" ^"^)^"   :固定格式,只需要将%%~nx.ts中ts按实际修改即可,比如源文件是mp4,修改为 ^"^(^" ^"%%~nx.mp4^" ^"^)^" 

第二个输入源文件B参数:

 --language 0:und --track-name ^"0:繁体^"  ^"^(^" ^"%%~nx.srt^" ^"^)^" :字幕文件参数,语言未定义,名称是繁体中文,文件名是相应的01.srt,02.srt,...

 --track-order 0:0,0:1,0:2,1:0 :结果文件中轨道顺序,不熟悉的可以直接删除此段代码。

pause :操作完成后,屏幕暂停,方便检查看运行结果


这段代码,实际上是对某部电视剧进行封装使用到的。

该剧有01.ts, 01.srt, 02.ts,02.srt,...一系列文件,每个视频文件包含了视频、国语、粤语音轨,字幕文件是独立srt繁体文件 ,通过执行代码,

实现了将ts,srt文件打包成mkv文件,并将第二条粤语音轨设定为默认值。


复制代码,打开记事本,粘贴,另存为  “批量封装.bat”,把此文件放到需要操作的视频目录,双击运行即可。


重复一次代码:


for /f "delims="  %%x in ('dir /b *.ts') do (

D:\MKV2s\mkvmerge.exe --ui-language zh_CN --output ^"%%~nx.mkv^" --language 0:und --language 1:zh --track-name ^"1:国语^" --default-track 1:no --language 2:und --track-name ^"2:粤语^" ^"^(^" ^"%%~nx.ts^" ^"^)^" --language 0:und --track-name ^"0:繁体^" ^"^(^" ^"%%~nx.srt^" ^"^)^" --track-order 0:0,0:1,0:2,1:0

)

pause


相关文章

win版 postgresql配置简单说明

win版 postgresql配置简单说明

win版 postgresql配置简单说明官网下载最新win版本压缩包,本例中使用的是postgresql-11.5-1-windows-x64-binaries.zip解压缩到指定目录,比如D:\p...

Python 的打包神器 — Nuitka

Python 的打包神器 — Nuitka

一. pyinstaller和Nuitka使用感受1.1 使用需求这次也是由于项目需要,要将python的代码转成exe的程序,在找了许久后,发现了2个都能对python项目打包的工具——pyinta...

OpenStack架构

OpenStack架构

OpenStack架构OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计基本原则①按照不同的功能和通用性划分不同项目,拆分子系统按照不同的功能划分不同服务,并且服务之间相互隔离,只通过A...

Linux查看所有用户命令/查看系统命令

Linux查看所有用户命令/查看系统命令

1、用户查看命令序号命令作用01id 用户名查看用户 UID 和 GID 信息02cat -n /etc/passwd查看用户详细信息,参数 - n 显示行号03cat -n /etc/group查看...

在Linux系统上通过uWSGI配置Nginx+Python环境的教程

在Linux系统上通过uWSGI配置Nginx+Python环境的教程

1.安装ubuntu有uwsgi的ppa:123add-apt-repository ppa:stevecrozz/ppaapt-get update apt-get install uwsgi 2....

开源--open-falcon

开源--open-falcon

一、open-falcon简介  open-falcon是由小米运维团队,从互联网公司角度为出发点,开发出来的一套面向互联网行业的企业级的开源监控系统,截至2019年7月,open-falcon最新稳...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。