如何使用ffmpeg将所有“mkv”文件连接起来?

6

我该如何将文件夹中所有扩展名为mkv的文件合并?我知道我可以使用以下命令来指定特定的文件:

ffmpeg -i "concat:00019.MTS|00020.MTS|00021.MTS|00022.MTS" output.mp4

但是我不确定如何更改它,以使其在大量视频文件上执行相同的操作。我该怎么做?


3
请使用concat demuxer - Gyan
谢谢!我会看一下。 - Georgi Koemdzhiev
1个回答

18

我之前使用过ffmpeg几次来实现这个功能。我主要使用合并功能来“剪辑掉”损坏DVD中的糟糕视频。我提取好的部分然后使用合并功能。我发现这样做非常令人满意。

以下是我使用的步骤。

   ffmpeg  -loglevel info -f concat -safe 0  -i join-Title.ffmpeg -c copy   "Whole Title.mkv"

从原始DVD撕裂的3个片段,join-Title.ffmpeg 文件看起来像这样。

 ################
 #
 ##  ffmpeg  -loglevel info -f concat -safe 0  -i join-Title.ffmpeg -c copy   "Whole Title.mkv"
 #
 file    '/home/media/title/Title A.mkv'
 file    '/home/media/title/Title B.mkv'
 file    '/home/media/title/Title C.mkv'

这个页面简单地解释了涉及的步骤。


6
官方文档简洁明了,提供了在不同平台上生成文件列表的方法:https://trac.ffmpeg.org/wiki/Concatenate。例如,在Windows Powershell中,可以使用以下命令:foreach ($i in Get-ChildItem .\*.mkv) {echo "file '$i'" >> mylist.txt} - Matt Kleinsmith
这是我常用的一个命令行:ffmpeg -f concat -safe 0 -i <(for f in *.mkv; do echo "file '$(pwd)/$f"; done) output.mkv - undefined

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