This is an old revision of the document!
VP9
- VP9 Bitrate Modes in Detail - Google's
- VP9 Tips - Encoding Modes and Recommended Command Line Options - upstream's wiki
vpxenc
By default, vpxenc
will use 2-pass method for encoding.
To gain a CRF-type result, use –end-usage=cq –cq-level=<arg>
format, and then a 1-pass encode –passes=1
Using this, vpxenc
uses a default CQ of 32.
I get different encoding times on multiple runs, even though it's producing the exact same files, so watch out for that.
HandBrake
By default, HandBrake uses a CQ of 22.
HandBrake will only use 2-passes if a bitrate is set as well.
ffmpeg
You can use ffmpeg
to get a deep level of output to see what it's doing. It sets a default CRF of 32.
ffmpeg -loglevel debug -i sample.y4m -vcodec libvpx-vp9 sample.webm
Relevant output:
[libvpx-vp9 @ 0x55a6e613e3c0] VP8E_SET_CPUUSED: 1 [libvpx-vp9 @ 0x55a6e613e3c0] VP8E_SET_ARNR_MAXFRAMES: 0 [libvpx-vp9 @ 0x55a6e613e3c0] VP8E_SET_ARNR_STRENGTH: 3 [libvpx-vp9 @ 0x55a6e613e3c0] VP8E_SET_ARNR_TYPE: 3 [libvpx-vp9 @ 0x55a6e613e3c0] VP8E_SET_STATIC_THRESHOLD: 0 [libvpx-vp9 @ 0x55a6e613e3c0] VP8E_SET_CQ_LEVEL: 32 [libvpx-vp9 @ 0x55a6e613e3c0] VP9E_SET_COLOR_SPACE: 0 [libvpx-vp9 @ 0x55a6e613e3c0] VP9E_SET_COLOR_RANGE: 0 [libvpx-vp9 @ 0x55a6e613e3c0] VP9E_SET_TARGET_LEVEL: 255