我使用 MKVToolNix GUI 已经有一段时间了,最近我一直在利用它的脚本功能。我翻录了一些电视节目文件,这是那种每集包含 2 个子集(简介、第 1 集、第 2 集、结尾)的节目。在线电视数据库将子集计为完整剧集,因此 Plex 对我的剧集的标记完全错误。所以我想像这样重新组合它们(我将简介和结尾以及子集全部分开):
简介 + 第 1 集 + 结尾
简介 + 第 2 集 + 结尾
等等。我把所有剧集文件放在一个文件夹中,把简介和结尾文件放在另一个文件夹中。我尝试了一下脚本,但玩了一段时间,阅读了 mkvmerge 官方文档,并在谷歌上搜索后,我仍然很纠结。
for %%a in (*.mkv) do mkvmerge -o "G:\Ripped Discs\Edited\Output\%%~a" -append-mode file --generate-chapters when-appending "G:\Ripped Discs\Edited\Reserved\Intro.mkv" + "G:\Ripped Discs\Edited\Input\%%~a" + "G:\Ripped Discs\Edited\Reserved\Outro.mkv"
如您所见,我想为每个文件生成章节。我不确定我做错了什么,但希望我已经接近了。
编辑: 我通过 AI 聊天机器人运行了该脚本,经过一些调整后,它现在至少向我提供了 mergemkv 错误消息,而以前是没有的。
@echo off
setlocal enabledelayedexpansion
set "inputFolder=G:\Ripped Discs\Edited\Input"
set "outputFolder=G:\Ripped Discs\Edited\Output"
set "introFile=G:\Ripped Discs\Edited\Reserved\Intro.mkv"
set "outroFile=G:\Ripped Discs\Edited\Reserved\Outro.mkv"
cd /d "%inputFolder%"
for %%a in (*.mkv) do (
set "outputFile=!outputFolder!\%%~a"
mkvmerge -o "!outputFile!" --append-mode file --generate-chapters when-appending "!introFile!" + "%%~a" + "!outroFile!"
)
endlocal
错误似乎与轨道映射有关:
对于文件 1(“S1E03.mkv”)没有给出追加映射。将改用默认映射 1:0:0:0,1:1:0:1,1:2:0:2。如果 mkvmerge 因“--append-to”选项无效而中止,请注意这一点。对于文件 2(“G:\Ripped Discs\Edited\Reserved\Outro.mkv”)没有给出追加映射。将改用默认映射 2:0:1:0,2:1:1:1,2:2:1:2。如果 mkvmerge 因“--append-to”选项无效而中止,请注意这一点。错误:无法将文件“S1E03.mkv”中的曲目编号 0 附加到文件“G:\Ripped Discs\Edited\Reserved\Intro.mkv”中的曲目编号 0。两条轨道宽度不同:708和710
我会继续调查,但如果有任何建议我都会感激不尽。