VP9 parameters

VP92 is a video codec licensed under the BSD license and is considered open source, the WEBM container is based on MATROSKA for video and OPUS for audio. There are some common VP9 rendering options files that support creation of video for YouTube, Dailymotion, and other online video services. YouTube easy startup steps are documented above.

Note: For VP9 and AV1 presets, two pass rendering is recommended, which provides higher quality.

Below is one of the VP9 rendering options file with documentation for specifics:

webm libvpx-vp9

from https://developers.google.com/media/vp9/settings/vod/

1280x720 (24, 25 or 30 frames per second)

Bitrate (bit rate)

VP9 supports several different bitrate modes:

mode:

Constant Quantizer (Q) Allows you to specify a fixed quantizer value; bitrate will vary
Constrained Quality (CQ) Allows you to set a maximum quality level. Quality may vary within bitrate parameters
Variable Bitrate (VBR) Balances quality and bitrate over time within constraints on bitrate
Constant Bitrate (CBR) Attempts to keep the bitrate fairly constant while quality varies

CQ mode is recommended for file-based video (as opposed to streaming). The following FFMpeg command-line parameters are used for CQ mode:

FFMpeg:

-b:v <arg> Sets target bitrate (e.g. 500k)
-minrate <arg> Sets minimum bitrate.
-maxrate <arg> Sets maximum bitrate.
-crf <arg> sets maximum quality level. Valid values are 0-63, lower numbers are higher quality.

Note 1: Bitrate is specified in kbps, or kilobits per second. In video compression a kilobit is generally assumed to be 1000 bits (not 1024).

Note 2: Other codecs in FFMpeg accept the -crf parameter but may interpret the value differently. If you are using -crf with other codecs you will likely use different values for VP9.

bitrate=1024k
minrate=512k
maxrate=1485k
crf=32

Tiling splits the video into rectangular regions, which allows multi-threading for encoding and decoding. The number of tiles is always a power of two. 0=1 tile; 1=2; 2=4; 3=8; 4=16; 5=32
tile-columns=2

(modified from https://trac.ffmpeg.org/wiki/EncodingForStreamingSites)

To use a 2 second GOP (Group of Pictures), simply multiply your output frame rate × 2. For example, if your input is -framerate 30, then use -g 60.
g=240

number of threads to use during encoding
threads=8

Quality may be set to good, best, or realtime
quality=good

Speed: this parameter has different meanings depending upon whether quality is set to good or realtime. Speed settings 0-4 apply for VoD in good and best, with 0 being the highest quality and 4 being the lowest. Realtime valid values are 5-8; lower numbers mean higher quality
speed=4



Footnotes

...VP92
credit Frederic Roenitz
The CINELERRA-GG Community, 2021
https://www.cinelerra-gg.org