在Windows下合并mkv文件(自动化,不使用GUI)

4

我有一个服务器,不时会从它那里收到一些MKV文件。这些MKV文件都是同一录制的一部分,但它们是分成1分钟的片段的,我不想每次手动拼接它们。在Windows中是否可以通过自动化流程来完成这个任务?

编辑:请查看下面我的答案以获取适合我的解决方案。Endoro发布的帖子也很有前途。


你可以使用类似 mkvtoolnix 的工具来合并这些文件。 - Luke
谢谢指点。我找到了一篇关于mkvtoolnix的博客,其中包含cmd.exe命令的帮助。 - austinthemassive
请谈一下您“块”的文件名和结构(轨道):始终相同吗? - Endoro
我刚刚成功地完成了这个过程,但是由于我是一个新用户,我还不能在几个小时内回答自己的问题。 - austinthemassive
我已经纠正了我的代码。现在它可以从源文件夹中收集所有的MKV文件到一个输出MKV文件中。 - Endoro
3个回答

4
我可以给你举一个例子:
@echo off &setlocal enabledelayedexpansion
cd /d "%sourcefolder%"
set "line="
for %%a in (*.mkv) do set line=!line! +"%%~a"
mkvmerge -o "output.mkv" %line:~2%

这看起来很有前途,但由于我已经解决了我的问题,所以我没有尝试过它(不能保证其有效性)。还有其他人使用过吗? - austinthemassive
我在命令行视频工具方面有很长的经验(如mkvtoolnix,mp4box,ffmpeg,MPlayer,x264...),而且,它们都可以用 :)。 - Endoro
这个完美运行,只是在加载结果行时有一些延迟。非常感谢。 - feos
1
这个答案需要一些关于mkvmerge是什么的信息。 - LudvigH

3

当我继续研究时,我发现一个下载页面,其中还包含了关于mkvtoolnix (http://www.fosshub.com/MKVToolNix.html) 的评论,提到了他测试过的一些cmd命令以及标准GUI测试。使用"mkvmerge --help"命令,我能够确定合并mkv文件的适当命令。大致如下:

C:\Program Files (x86)\MKVToolNix>mkvmerge file1.mkv + file2.mkv --output C:\Users\User1\mkvfolder\combined.mkv

这将两个mkv文件(位于MKVToolNix文件夹中)拼接在一起,并将组合后的mkv文件放入另一个目录。我认为更改任何原始mkv文件(file1.mkv, file2.mkv)的源目录也应该是可能的,所以我接下来尝试了这个:
C:\Program Files (x86)\MKVToolNix>mkvmerge file1.mkv + C:\Users\User1\Documents\file2.mkv  --output C:\Users\User1\mkvfolder\combined.mkv

上述代码将我放置在mkvtoolnix目录中的file1.mkv与我位于另一个目录中的file2.mkv合并,并将合并后的文件(combined.mkv)放置在第三个目录中。合并后的文件在vlc中运行良好,在接缝处没有任何问题。
TL DR:转到http://www.fosshub.com/MKVToolNix.html,下载MKVToolNix,并使用命令行合并mkv文件。

0
你可以尝试使用AVIDemux和--append参数。在这个链接中还有一个批处理文件示例脚本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接