How to show overlay image in a certain time span with ffmpeg

Solution 1:

The syntax looks right to me. Use single quotes so you don't have to escape the expression:

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

If you don't have an enable option, make sure you use an ffmpeg version 2.0 or higher. Timeline editing is only supported there (see Changelog).

If you want multiple images overlaid, use something like this:

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