FFmpeg h264 preset crf comparison 2020 pt1 (fasts)

This comprehensive FFmpeg encoding comparison includes H.264 and H.265 HEVC from the fastest preset ultrafast through to veryslow with CRF values from 20 to 30.

The posts will be split up with a finale putting the fasts and slows presets from both H.264 with HEVC.

H.264 fasts

Starting with this post which is the fast presets for H.264. Ultrafast, superfast, veryfast, faster and fast with CRF values 20 through to 30.

The server

An Intel Xeon E-2246G CPU 6 cores, 12 threads at 3.60GHz boosted to 4.80GHz with 32GB of ram and SSD disk running Ubuntu 18.04.

CPU model            : Intel(R) Xeon(R) E-2246G CPU @ 3.60GHz
Number of cores      : 12
CPU frequency        : 4200.984 MHz
Total size of Disk   : 877.5 GB (25.1 GB Used)
Total amount of Mem  : 32068 MB (365 MB Used)
Total amount of Swap : 1951 MB (0 MB Used)
System uptime        : 1 days, 4 hour 47 min
Load average         : 0.00, 0.00, 1.19
OS                   : Ubuntu 18.04.3 LTS
Arch                 : x86_64 (64 Bit)
Kernel               : 4.15.0-72-generic
----------------------------------------------------------------------
I/O speed(1st run)   : 438 MB/s
I/O speed(2nd run)   : 440 MB/s
I/O speed(3rd run)   : 440 MB/s
Average I/O speed    : 439.3 MB/s

The Xeon E-2246G is a very recently released CPU (Q2 2019). FFmpeg version 3.4.6.

The source media

Thanks to jell.yfish.us the source media file for the H.264 testing was this file here. At 4k resolution (3840×2160) 29.97 fps, 30 seconds long, 250Mbps bitrate and a file size of 895MB.

This file was chosen because of its size, a large resolution with a very beefy bitrate. This is especially relevant for when I do the HEVC H.265 testing with a 400Mbps 10 bit 4k video file.

Results

Here are all the fast presets with encoding FPS, speed, bitrate and end file size compared to the source media.

ffmpeg h264 preset comparison 2020 fasts

Each preset individually through the CRF spectrum:

ultrafast

ffmpeg h264 comparison 2020 ultrafast preset
H.264 ultrafast preset

superfast

ffmpeg h264 comparison 2020 superfast preset
H.264 superfast preset

veryfast

ffmpeg h264 comparison 2020 veryfast preset
H.264 veryfast preset

faster

ffmpeg h264 comparison 2020 faster preset
H.264 faster preset

fast

ffmpeg h264 comparison 2020 fast preset
H.264 fast preset

Now the results in CRF value groups:

ffmpeg h264 comparison 2020 fasts crf 20
h264 fasts crf 20
ffmpeg h264 comparison 2020 fasts crf 21
h264 fasts crf 21
ffmpeg h264 comparison 2020 fasts crf 22
h264 fasts crf 22
ffmpeg h264 comparison 2020 fasts crf 23
h264 fasts crf 23
ffmpeg h264 comparison 2020 fasts crf 24
h264 fasts crf 24
ffmpeg h264 comparison 2020 fasts crf 25
h264 fasts crf 25
ffmpeg h264 comparison 2020 fasts crf 26
h264 fasts crf 26
ffmpeg h264 comparison 2020 fasts crf 27
h264 fasts crf 27
ffmpeg h264 comparison 2020 fasts crf 28
h264 fasts crf 28
ffmpeg h264 comparison 2020 fasts crf 29
h264 fasts crf 29
ffmpeg h264 comparison 2020 fasts crf 30
h264 fasts crf 30

Sorting by encoding FPS

ffmpeg h264 preset comparison 2020 fasts fps sort
Sorting by fps when encoding

Sorting by bitrate

ffmpeg h264 preset comparison 2020 fasts bitrate sort
Sorting by bitrate

Sorting by end file size

ffmpeg h264 preset comparison 2020 fasts file size sort
Sorting by end file size

Sorting by encoding time in seconds

ffmpeg h264 preset comparison 2020 fasts time sort
Sorting by time taken to encode

Up next will be H.264 with the FFmpeg slow presets.