FFmpeg preset comparison x264 2019; Encode speed and file size

FFmpeg preset is the value in which speed the media encode will traverse at, At the slower spectrum you get more quality at the sacrifice of time, more quicker and you get larger file sizes.

In this part 1 of FFmpeg encoding comparisons I look at x264 presets, their speed and output file size. It is usually a given (on most occasions) that the slowest preset which is “veryslow” takes the longest and gives the smaller file size, however is it worth waiting all that extra time for the smaller size?

The unspecified source video file used for this comparison was: 24,000,564KB in size, 1920×1080 @ 19,194Kb/s .MKV format.

The server i used to run these FFmpeg encoding comparisons was: 2x E5-2650 v2 @2.60GHz (16 cores, 32 threads), 64GB ram, SSD.

Preset comparisons

Here is a table comparing all of the FFmpeg presets in x264 encodes, you can see time taken, output size, fps, kbit, and percent smaller than source.

ffmpeg x264 preset comparison table 2019
ffmpeg x264 all preset comparison table

Charts

Graph showing the encode speeds for all FFmpeg x264 presets, time is in seconds

ffmpeg comparison x264 encode time chart
ffmpeg comparison x264 encode time chart

Graph showing the encoded output file size for all FFmpeg x264 presets (KB)

ffmpeg comparison x264 output size chart
ffmpeg comparison x264 output size chart

Graph showing the Kbit rate encoded for all FFmpeg x264 presets

ffmpeg comparison x264 encode kbit chart
ffmpeg comparison x264 encode kbit chart

Comparing all presets to each other

Now lets take a look at the difference + or – in file size and time each of the presets are when compared to each other:

ffmpeg comparison x264 veryslow preset ffmpeg comparison x264 slower preset ffmpeg comparison x264 slow preset ffmpeg comparison x264 medium preset ffmpeg comparison x264 fast preset ffmpeg comparison x264 faster preset ffmpeg comparison x264 veryfast preset ffmpeg comparison x264 superfast preset ffmpeg comparison x264 ultrafast presetFor some unknown reason veryfast broke the norm and actually compressed the file more than veryslow. Technically that shouldnt happen and its an odd bug, express encoding that was quicker than veryslow by 192 minutes with a smaller filesize?!

Personally for me the results (aside from veryfast) were expected, the jump in time from slow to slower is big with the filesize being almost the same…. so slower is a no go. The fast preset looks the most appetizing counting speed to output file size, similar to medium preset.

Fast will give you a file close to half a gigabyte bigger than veryslow, whilst medium is under 400 megabytes bigger.

Perhaps comparisons with crf values will play a bigger part in FFmpeg encoding file size and time comparisons?

Coming soon in part 2 I take on x265 encoding.