如何使用ffmpeg在特定时间范围内显示叠加图像

San*_*990 15 video ffmpeg

我正在向视频添加叠加图像,该视频有效,但我只想在特定时间段内显示它:

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

这显示错误

key 'enable' not found
Run Code Online (Sandbox Code Playgroud)

slh*_*hck 20

语法对我来说是正确的。使用单引号,这样您就不必转义表达式:

ffmpeg -i input.mp4 -i watermark.png -filter_complex \
"[0:v][1:v] overlay=10:10:enable='between(t,1,2)'" output.mp4
Run Code Online (Sandbox Code Playgroud)

如果没有enable选项,请确保使用 ffmpeg 2.0 或更高版本。仅在那里支持时间线编辑(请参阅Changelog)。

如果您想要叠加多个图像,请使用以下内容:

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