You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MkvToolNix批量合并成对MKV视频的批处理脚本求助

批量MKV混流解决方案

准备工作

  • 安装MKVToolNix,确保mkvmerge命令已添加到系统环境变量PATH中(安装时可勾选"Add to PATH"选项)。

批处理脚本

创建一个名为merge_mkv.bat的文件,将以下代码粘贴进去,保存到存放MKV文件的文件夹中:

@echo off
setlocal enabledelayedexpansion

rem 创建输出目录(避免覆盖原文件)
if not exist "output" mkdir "output"

rem 检查mkvmerge是否可用
where mkvmerge >nul 2>&1
if errorlevel 1 (
  echo 错误:未找到mkvmerge,请安装MKVToolNix并确保其在系统PATH中。
  pause
  exit /b 1
)

rem 遍历所有MKV文件
for %%f in (*.mkv) do (
  rem 获取不带扩展名的文件名
  set "base=%%~nf"
  
  rem 跳过带"-数字"后缀的配对文件(避免重复处理)
  echo !base! | findstr /E "-[0-9][0-9]*" >nul
  if not errorlevel 1 (
    echo 跳过配对文件:%%f
    goto nextfile
  )
  
  rem 查找对应的配对文件(形如base-数字.mkv)
  set "paired_found=0"
  for %%p in ("!base!-*.mkv") do (
    set "paired_file=%%p"
    set "paired_found=1"
    
    echo 正在处理:%%f 和 !paired_file!
    
    rem 执行混流命令:保留原文件除章节外的所有轨道,添加配对文件的所有字幕轨道
    mkvmerge -o "output\!base!.mkv" ^
      --no-chapters "%%f" ^
      --only-subtitles "!paired_file!"
    
    if errorlevel 1 (
      echo 处理!base!时出错
    ) else (
      echo 已成功合并!base!到output\!base!.mkv
    )
  )
  
  if !paired_found! equ 0 (
    echo 未找到!base!的配对文件
  )
  
  :nextfile
)

echo 批量处理完成
pause

使用说明

  1. 将上述脚本保存为merge_mkv.bat,放到你的MKV文件所在文件夹。
  2. 双击运行该批处理文件,脚本会自动:
    • 创建output文件夹存放合并后的文件
    • 跳过所有带-数字后缀的配对文件
    • 为每个基础文件(如magic.mkv)找到对应的配对文件(如magic-1.mkv)
    • 执行混流操作,保留基础文件除章节外的所有轨道,仅添加配对文件的字幕轨道

关键细节说明

  • --no-chapters:移除基础文件的章节轨道,保留其他所有轨道(视频、音频等)
  • --only-subtitles:仅从配对文件中提取所有字幕轨道,忽略其他轨道
  • 输出文件存放在output文件夹,不会覆盖原文件
  • 脚本会自动跳过配对文件,避免重复处理

内容的提问来源于stack exchange,提问作者estevenin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:24:57