[FFmpeg-user] Reducing frame rate without reencoding

Carl Eugen Hoyos ceffmpeg at gmail.com
Thu Oct 27 01:38:06 EEST 2016

2016-10-26 23:07 GMT+02:00 Sven C. Dack <sven.c.dack at sky.com>:
> 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?

> this is only possible when the input is composed of absolute frames,
> i.e. with Motion JPEG.

Alternatives may exist (but this is impossible to know without
ffmpeg -i output).

> 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

I do not remember a sample file for which "-r 29.97" would
have been correct.

Carl Eugen

More information about the ffmpeg-user mailing list