Every single resource I have looked up on how to do this has led me to exactly what I don't want, which is changing the framerate of a video in the sense of slowing it down.
If I want to, for example, change a 60FPS video to a 24FPS video with ffmpeg, NOT in the sense of lengthening the video but in the sense of removing frames, what is the command I should use?
Or, is that fundamentally impossible with most codecs without re-encoding (unless they are all i-frames)?
+ Reply to Thread
Results 1 to 3 of 3
Decimating 60 fps to 24 fps will give you jerky video. But if you must: "-vf fps=24".
And yes, you have to reencode. Remember that high compression codecs get a lot of their compression by not repeating parts of the picture that haven't changed -- to reconstruct a frame they copy parts of other frames. If some of those other frames are gone you can't reconstruct the frame. Here's a simple example using a very simple ipppp sequence with a single reference frame (each p frame only includes the changes from the previous frame). Consider a sequence of 5 frames, an i frame followed by 4 p frames.
i0 p1 p2 p3 p4
If you decimate that to (60p to 24p):
And if your decimation removes the I frame:
Last edited by jagabo; 28th Apr 2021 at 06:38.