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

Geo*_*iev 2 video join ffmpeg video-processing mkv

如何将我的所有文件连接到一个带有mkv扩展名的文件夹中?我知道我可以使用该命令指定特定文件:

ffmpeg -i "concat:00019.MTS|00020.MTS|00021.MTS|00022.MTS" output.mp4
Run Code Online (Sandbox Code Playgroud)

但我不确定如何更改它以便它在大量视频文件上执行相同的操作。我怎样才能做到这一点?

wil*_*ill 6

我已经用过ffmpeg几次来做到这一点。我主要使用连接来从有划痕的 DVD 中“编辑出”不良视频。我撕掉好的部分然后使用连接。我觉得还算满意。

这是我用的食谱。

   ffmpeg  -loglevel info -f concat -safe 0  -i join-Title.ffmpeg -c copy   "Whole Title.mkv"
Run Code Online (Sandbox Code Playgroud)

该文件join-Title.ffmpeg 如下所示,包含从原始 DVD 中摘录的 3 个片段。

 ################
 #
 ##  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'
Run Code Online (Sandbox Code Playgroud)

此页面对所涉及的步骤进行了简单说明。

  • 官方文档很简洁,并给出了一些在不同平台上生成文件列表的方法:https://trac.ffmpeg.org/wiki/Concatenate 例如,对于 Windows Powershell: `foreach ($i in Get-ChildItem .\* .mkv) {echo "文件 '$i'" >> mylist.txt}` (7认同)