I have a video recorded at 5 fps that I want to speed up to 30 fps to shorten it. That is simple enough as:
ffmpeg -i input.mp4 -r 30 -vf "setpts=(1/6)*PTS" output.mp4
But when I try to add a timestamp to it with:
ffmpeg -i input.mp4 -r 30 -vf "setpts=(1/6)*PTS, drawtext=text='%{pts:localtime:1610043985:%Y-%m-%d %H\\:%M\\:%S.}%{eif:mod(n,30):d}'" output.mp4
The timestamp does not longer represents the time as it was recorded (it should run faster now)
What would be the simplest way to achieve this on a single pass?
Put the drawtext filter first and then the setpts filter:
drawtext
setpts
ffmpeg -i input.mp4 -r 30 -vf "drawtext=..., setpts=..." output.mp4
2.1m questions
2.1m answers
60 comments
57.0k users