我正在向视频添加覆盖图像,它可以起作用,但我想仅在特定时间范围内显示它:
ffmpeg -i video2.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out2.mp4
这显示错误
key 'enable' not found
答案1
语法对我来说是正确的。使用单引号,这样您就不必转义表达式:
ffmpeg -i input.mp4 -i watermark.png -filter_complex \
"[0:v][1:v] overlay=10:10:enable='between(t,1,2)'" output.mp4
如果你没有选择enable
,请确保使用 ffmpeg 2.0 或更高版本。仅在那里支持时间线编辑(请参阅更新日志)。
如果您想要叠加多幅图像,请使用以下命令:
ffmpeg -i input.mp4 -i watermark.png -i watermark2.png -filter_complex \
"[0:v][1:v] overlay=10:10:enable='between(t,1,2)' [tmp]; [tmp][2:v] overlay=20:20:enable='between(t,2,3)'" output.mp4
要定义起点并将叠加层放置到视频结束,请inf
使用无穷。此示例将从第 10 秒开始显示直到视频结束:
... enable='between(t,10,inf)'