I'd like to overlay a png onto a video at a certain timestamp and have the video pause (loop) on that frame for X seconds with the overlay. What would be the best method to accomplish this?
Let's call the video frame rate
F. And the start time of the overlay
ffmpeg -i in.mp4 -i ol.png -filter_complex "trim=0:t,loop=X*F:1:t*F,setpts=N/FRAME_RATE/TB[fol]; trim=t,setpts=N/FRAME_RATE/TB[post] [fol]overlay[pre];[pre][post]concat" out.mp4
The loop filter accepts frame index numbers, so you have to convert your start time and loop time to frame counts and substitute with those values.