![使用 ffmpeg concat 时如何消除重叠?](https://linux22.com/image/1467155/%E4%BD%BF%E7%94%A8%20ffmpeg%20concat%20%E6%97%B6%E5%A6%82%E4%BD%95%E6%B6%88%E9%99%A4%E9%87%8D%E5%8F%A0%EF%BC%9F.png)
我试图连接两个文件,但第二个文件重复了第一个文件的最后两秒,在中间形成了一个微小的、令人恼火的循环。这是我的脚本,基于本文档:
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 的文档中。