MKVToolNix可批量为MP4添加外挂SRT中文字幕并保持可开关、不烧录、无乱码和时间轴偏移;需确保同名SRT与MP4同目录、编码为UTF-8无BOM、换行符为LF,GUI或命令行均可高效完成封装。

你需要把几十个MP4视频统一加上已有的SRT中文字幕,并保持字幕可开关、不烧进画面,还要避免乱码和时间轴偏移——这正是MKVToolNix批量封装外挂字幕的强项。
准备字幕与视频文件
确保所有SRT字幕文件与对应视频文件同名(如movie.mp4 → movie.srt),且存放在同一文件夹下;若字幕编码为GBK或BIG5,先用Notepad++转为【UTF-8 无 BOM】并保存为LF换行格式,否则mkvmerge会静默跳过或显示乱码。
检查任一字幕文件右下角编码标识,不是UTF-8无BOM就别往下走——这一步漏掉,后面所有封装出来的MKV都会中文变方块。
用MKVToolNix-GUI批量混流
打开MKVToolNix GUI(v90.0及以上),点击左上角「添加源文件」→ 一次性选中全部MP4文件(支持Ctrl+A多选)。
每添加一个MP4,右侧轨道列表会自动展开;在每个视频条目下,点击「添加轨道」→「字幕」→「从文件添加」→ 找到同名SRT文件并导入。
对每个导入的SRT轨道,双击进入属性:将语言设为【chi】(不是zho或chs),轨道名称填“简体中文”;勾选「默认轨道」仅限你希望播放器首次打开时自动启用的那一条字幕。
全部配置完成后,点击底部「开始复用」按钮,设置输出目录,确认无红色报错提示即可执行。GUI会逐个生成MKV,进度条实时显示当前任务。
命令行方式极速批量处理(推荐)
方法一:用批处理脚本(Windows原生支持,无需安装额外环境)
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
新建文本文档,粘贴以下内容,保存为batch_mux.bat,放入视频+SRT所在文件夹:
@echo off
for %%i in (*.mp4) do (
mkvmerge -o "%%~ni.mkv" "%%i" --language 0:chi --track-name "0:简体中文" "%%~ni.srt"
)
pause
双击运行,自动为每个MP4匹配同名SRT并封装为MKV;若某视频缺SRT,mkvmerge会报错跳过,不影响其余任务。
方法二:用PowerShell一行搞定(Win10/11默认可用)
以管理员身份打开PowerShell,cd到目标文件夹后,执行:
Get-ChildItem *.mp4 | ForEach-Object { $srt = $_.BaseName + ".srt"; if (Test-Path $srt) { mkvmerge -o "$($_.BaseName).mkv" $_.FullName --language 0:chi --track-name "0:简体中文" $srt } }










