FFmpeg libvpx-vp9 Default Encoding Settings

This article provides a clear overview of the default encoding configurations applied when using the libvpx-vp9 encoder in FFmpeg without specifying any extra flags. It covers key parameters such as rate control, target bitrate, CPU usage, pixel format, and threading, helping you understand how FFmpeg processes VP9 video out of the box.

When you run FFmpeg with the basic command ffmpeg -i input.mp4 -c:v libvpx-vp9 output.webm without defining additional parameters, the encoder falls back on a set of built-in defaults. These defaults are generally optimized for compatibility rather than speed or visual quality, often resulting in slow encoding times and low-quality output if left unmodified.

Default Bitrate and Rate Control

By default, the libvpx-vp9 encoder uses One-Pass Average Bitrate (ABR) mode.

Speed and Quality Settings (CPU-Used)

The -cpu-used parameter controls the trade-off between encoding speed and video quality. The scale ranges from 0 (slowest, highest quality) to 8 (fastest, lowest quality).

Threading and Multi-Processing

VP9 encoding is highly resource-intensive, but its default threading settings do not utilize modern multi-core processors efficiently.

Pixel Format and Color Space

Keyframe Interval (GOP Size)