使用 ffmpeg concat 时如何消除重叠?

使用 ffmpeg concat 时如何消除重叠?

我试图连接两个文件,但第二个文件重复了第一个文件的最后两秒,在中间形成了一个微小的、令人恼火的循环。这是我的脚本,基于本文档

ffmpeg -f concat -i mylist.txt -c copy final.avi

我的列表.txt:

file '[Part1].avi'
file '[Part2].avi' inpoint 2

inpoint以这种方式使用时似乎没有任何作用——我可以将其设置为任何值,但没有任何区别。我做错了什么?

答案1

你可以剪切第二个视频的前2秒:

ffmpeg -ss 2 -i '[Part2].avi' -strict -2 -qscale 0 Part2-trimmed.avi

然后将第一个视频和新视频连接起来:

ffmpeg -i '[Part1].avi' -i Part2-trimmed.avi -lavfi "concat=n=2:v=1" -strict -2 -qscale 0 final.avi

答案2

使用 ffmpeg 的 concat 解复用器时,必须将每个命令放在单独的行上:

file '[Part1].avi'
file '[Part2].avi'
inpoint 2

由于您将其放在inpoint与 相同的行上file,因此它被忽略了。

每个指令(例如)inpoint都适用于其上方的最新file一行。所有可用的指令都列出在 concat demuxer 的文档中

相关内容