[FFmpeg-user] Reducing frame rate without reencoding

Sven C. Dack sven.c.dack at sky.com
Thu Oct 27 00:07:21 EEST 2016


On 26/10/16 20:06, Ronald F. Guilmette wrote:
> Apologies if this is an FAQ.
>
> I have a video with a fixed frame rate of 59.940 fps.  Some of my devices
> don't cope with this very well.  Thus, I'd like to convert the video to
> one with exactly half the frame rate (29.970), but preferably without
> doing any reencoding, e.g. just by stripping away every odd numbered
> frame (or every even numbered one).
>
> Is there a way to do this with ffmpeg, and if so, what is the command
> line to do it?

Hello,

this is only possible when the input is composed of absolute frames, i.e. with 
Motion JPEG. Your video will probably have been compressed with one of the more 
advanced algorithms and these purposely do not treat frames as absolute, but use 
their differences for their encoding. As such can you not drop every second 
frame, because you don't have full frames and dropping some of the intermediate 
frame information means you lose vital information for reconstructing the frames.

If you want to change the frame rate then you have to use the "-r" option. For 
example:

$ ffmpeg -i input.mp4 -r 29.97 -c:v libx264 -y output.mp4



More information about the ffmpeg-user mailing list