mkvtoolnix封装操作

许老师技术分享1826

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


相关文章

开源--Ventoy

开源--Ventoy

简单来说,Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无...

python打包环境的方法

python打包环境的方法

方法一:pip freeze >requirements.txt   导出当前环境pip download -d ./packs -r requirements.txt&nb...

Hadoop简介

Hadoop简介

Hadoop(Hdfs\MR\Yarn\ZK)一、Hadoop简介1.1 hadoop简介作用:海量数据的存储,海量数据的分析组件:hdfs--------数据的存储  MapReduce-...

「Kubernetes」k8s 的基本使用指令

结构模型k8s 是经典的一对多模型,有一个主要的管理节点master和许多的工作节点slaver。当然,k8s 也可以配置多个管理节点,拥有两个以上的管理节点被称为 高可用。k8s 包括了许多的组件,...

开源--open-falcon

开源--open-falcon

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

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

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

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

发表评论    

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