Encoding-Quality-Testing

Created with the vmaf-docker repo.

Reference content is either our own (https://media.ccc.de) or from Xiph (https://media.xiph.org/video/derf/).

The specific sources are found in https://github.com/voc/vmaf-docker/blob/master/data/sources.json

All the reference content is converted to 8bit 1080p25.

  • ffmpeg-4.1.4 (same as in buster)
  • libvmaf-1.3.15
  • libvpx-1.8.2 (bullseye)
  • libx264-2:0.155.2917+git0a84d98-2 (bullseye)

The codec settings are the ones currently in use by the C3VOC for live streaming.

See https://github.com/voc/vmaf-docker/blob/master/data/libquality/profiles/voc_streaming.py for the specific ffmpeg options.

The codecs are tested with bitrates from 1Mbit/s to 5.2Mbit/s.

Platform Label Hardware Codecs Comments
Intel 6th Gen (i7-6600U) skylake h.264, h.265 h.264 scores better than our VP9 and x264 streaming settings and is pretty fast
h.265 even scores a little bit higher but is considerably slower
Intel 8th Gen (i7-8665U) whiskeylake h.264, h.265, VP9 h.264 and h.265 results are identical to skylake
VP9 scores worse than H.264 and has broken rate-control for <2mbit/s
AMD Navi (RX 5700 XT) + Ryzen 2nd Gen (R5-2600) navi10 h.264, h.265 h.264 is worse than x264 on veryfast…
h.265 produces 1920×1088 output?

Goals:

  • improve quality over previous libvpx (VP8) profile
  • don't increase encoding time too much
  • smaller size but similar quality as x264 master

Notes:

  • realtime + speed ⇐ 3: slower and worse than quality good
-i $ref
-c:v libvpx-vp9
-quality:v good
-crf:v 30
-b:v 6000k
-maxrate:v 8000k
-minrate:v 2000k
-row-mt 1
-frame-parallel:v 1 -tile-columns:v 2
  • experiment/encoding-quality.1609600904.txt.gz
  • Last modified: 2021/01/02 16:21
  • by ischluff