VP9‎ > ‎

VP9 Tips

Note: VP9 1-pass encoding is non-functional in early versions of libvpx/vpxenc.

Encoding Modes and Recommended Command Line Options

  1. Configure libvpx with no parameters (works on most platforms):


    If you encounter any issues, use:

    configure --disable-unit-tests

  2. Build

    make -j16


Control bitrate mode (achieves a given target bitrate):

vpxenc <input_y4m> -o <out_filename_vp9> --codec=vp9 --cpu-used=0 \
  --target_bitrate=<bitrate_in_kbps> --kf-max-dist=<max_kf_distance_in_frames>

Constant quality mode (achieves a given quality level):

vpxenc <input_y4m> -o <out_filename_vp9> --codec=vp9 --cpu-used=0 \
  --end-usage=3 --cq-level=<desired quality in quant scale 0-63> \

Constrained Quality mode (Achieves a given quality level subject to an upper bound on bitrate):

vpxenc <input_y4m> -o <out_filename_vp9> --codec=vp9 --cpu-used=0 \
  --end-usage=2 --cq-level=<desired quality in quant scale 0-63> \
  --target-bitrate=<max_bitrate_constraint_in_kbps> --kf-max-dist=<max_kf_distance_in_frames>


vpxdec --progress --codec=vp9 -o /tmp/football_vp9.y4m /tmp/football.webm