libvpx-vp9 Good vs Best Deadline Settings

When encoding video using the libvpx-vp9 library in FFmpeg, the deadline parameter (configured via -deadline or -quality) controls the trade-off between encoding speed and compression efficiency. This article explains the practical differences between the good and best deadline settings, helping you choose the right configuration for your video rendering pipeline.

Understanding the Deadline Parameter

The libvpx-vp9 encoder offers three target quality/speed deadlines: realtime, good, and best. While realtime is designed for live streaming where encoding must happen instantly, good and best are intended for two-pass or single-pass offline encoding where quality is prioritized over real-time processing.

The “good” Deadline Setting

The good setting is the default option for libvpx-vp9 and is widely considered the industry standard for most encoding tasks.

The “best” Deadline Setting

The best setting instructs the encoder to prioritize compression efficiency above all else, exhaustively analyzing the video to save every possible bit.

Direct Comparison

Feature good Deadline best Deadline
Encoding Speed Moderate to Fast (adjustable) Extremely Slow
Compression Efficiency Excellent Maximum (slightly better than good)
CPU Utilization Highly efficient Heavy, exhaustive resource consumption
Recommended Use Standard VOD, Web Video, Plex Archive-grade encoding, short loops

Recommendation

For 99% of video projects, you should use -deadline good (or -quality good in newer FFmpeg versions). If you want to maximize quality under the good deadline, pair it with -cpu-used 0 or -cpu-used 1. This configuration will yield a video file that is virtually identical in visual quality to one encoded with the best deadline, but it will finish encoding in a fraction of the time.