[FFmpeg-user] Why does changing Y4M frame rate cause a 4x larger encoded H264 size?

Gyan ffmpeg at gyani.pro
Fri Feb 22 07:10:20 EET 2019



On 22-02-2019 03:50 AM, Moses DeJong wrote:
> When creating Y4M with 30 FPS frame rate:
>
> ffmpeg -y -i CarSpin.y4m -c:v libx264 -pix_fmt yuv420p -preset:v slow -profile:v main -tune:v animation -crf 23 -color_primaries bt709 -color_trc iec61966_2_1 -colorspace bt709 CarSpin.m4v
>
> CarSpin.m4v
> 977422 bytes
> 977 KB
>
> When the same video data is written as Y4M with a 1 FPS header.
>
> (ffmpeg command line is the same)
>
> CarSpin.m4v
> 4000022 bytes
> 4 MB
>
> ...

> What might be going on here and how could I get ffmpeg or x264 to get the higher compression results seen with 30 or 60 FPS in the Y4m header but with the low frame rate settings in the header? The frame rate defined in the M4V output header controls playback rate and I am not able to say encode a 30 FPS video and then play it back at 1 FPS on the client side.

x264 modulates rate control, taking into account, frame duration, which 
is much larger for a 1 FPS video than 30 FPS.

See https://stackoverflow.com/a/49623331/5726027

Gyan


More information about the ffmpeg-user mailing list