On 21-07-2018 04:12 PM, John Allan Farleyton wrote:
Hi,
I am trying to slow down a video to half speed beginning from frame 100
with the setpts filter. It works, but from frame 100 I get 100 additional
frozen dropped frames before the video continues at half speed. Is my
command wrong or is there a problem with the setpts filter?
Command:
ffmpeg -i ball.avi -vf "setpts='if(gte(N,100),2,1)'*PTS" -c:v libx264 -crf
20 -pix_fmt yuv420p ball_slow.avi
Since your video has a timescale of 30 tbn, equal to the framerate, we
can treat each frame's PTS to be equal to its N index.
So, as your expression,
frame 99 will have PTS 99 = 99/30 = 3.33s and
frame 100 will have PTS 200 = 200/30 = 6.67s;
101 will have 6.73s.
That's because PTS of frames N >= 100 can be thought to be comprised of
both an interval from the previous frame as well the common offset from
the start of the whole stream. For double speed, you only need to double
the inter-frame interval.
So, use instead,
setpts='if(eq(N,0),0,PREV_OUTPTS+if(gte(N,100),2,1)*(PTS-PREV_INPTS))'
Gyan
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".