Configure av1_nvenc Rate Control and Quality in FFmpeg
This article provides a practical guide on how to configure the rate
control and quality settings for NVIDIA’s hardware-accelerated AV1
encoder (av1_nvenc) in FFmpeg. You will learn how to
utilize different rate control modes—such as Constant Quality (CQ),
Variable Bitrate (VBR), and Constant Bitrate (CBR)—along with
NVENC-specific presets and tuning options to achieve the optimal balance
between file size, encoding speed, and visual fidelity.
Rate Control Modes in av1_nvenc
Rate control determines how the encoder allocates bits to different
parts of the video. The av1_nvenc encoder supports several
rate control methods via the -rc private flag, which
overrides standard FFmpeg rate control behavior.
1. Constant Quality (CQ / Target Quality)
For local recordings and archival purposes where file size is secondary to visual quality, the target-quality VBR mode is recommended. This mode maintains a consistent level of quality throughout the video.
Command options: Set
-rctovbrand define the quality level using-cq.Example:
ffmpeg -i input.mp4 -c:v av1_nvenc -rc vbr -cq 25 -b:v 0 output.mkvNote: Setting
-b:v 0is required when using-cqto prevent the encoder from targetting a default bitrate limit.
2. Variable Bitrate (VBR)
VBR is ideal when you want to target a specific average file size but allow the bitrate to spike during complex, high-motion scenes.
Command options: Specify the target bitrate with
-b:vand a maximum limit with-maxrate.Example:
ffmpeg -i input.mp4 -c:v av1_nvenc -rc vbr -b:v 5M -maxrate 10M -bufsize 20M output.mkv
3. Constant Bitrate (CBR)
CBR is crucial for live streaming, where a predictable and steady stream of data is required to prevent buffering.
Command options: Set
-rctocbrand match-b:v,-maxrate, and-bufsize.Example:
ffmpeg -i input.mp4 -c:v av1_nvenc -rc cbr -b:v 6M -maxrate 6M -bufsize 6M output.mkv
Configuring Quality Presets
NVIDIA uses a standardized preset system ranging from p1
(fastest, lowest quality) to p7 (slowest, highest quality).
The default preset is p4.
To set the preset, use the -preset flag:
ffmpeg -i input.mp4 -c:v av1_nvenc -preset p6 -rc vbr -cq 24 -b:v 0 output.mkv- Use
p1top3for low-latency, real-time applications where encoding speed is critical. - Use
p4top5for balanced daily encoding. - Use
p6top7for high-quality archival encoding where you want to squeeze out maximum efficiency.
Advanced Fine-Tuning Options
To maximize the efficiency of the AV1 encoder, you can enable several NVENC-specific hardware features in your FFmpeg command.
Multipass Encoding
(-multipass)
Multipass encoding allows the encoder to analyze the video frames
before compressing them. This significantly improves quality at a given
bitrate. * 0 or disabled: Single-pass
encoding. * 1 or qres: Two-pass full
resolution (slower, highest quality). * 2 or
fullres: Two-pass quarter resolution (good balance of speed
and quality).
ffmpeg -i input.mp4 -c:v av1_nvenc -multipass fullres -b:v 5M output.mkvAdaptive
Quantization (-spatial_aq and
-temporal_aq)
Adaptive Quantization (AQ) optimizes bit distribution across the
frame based on human visual perception. * Spatial AQ
(-spatial_aq 1): Allocates more bits to flat areas
(like skies or walls) to prevent color banding and blockiness. *
Temporal AQ (-temporal_aq 1): Reduces
blockiness in fast-moving scenes by tracking motion over time.
ffmpeg -i input.mp4 -c:v av1_nvenc -spatial_aq 1 -temporal_aq 1 output.mkvComprehensive Example Command
For a high-quality, efficient AV1 encode suitable for offline viewing or uploading, use a command that combines two-pass VBR, spatial and temporal AQ, and a high-quality preset:
ffmpeg -i input.mp4 -c:v av1_nvenc -preset p6 -rc vbr -cq 24 -b:v 0 -multipass fullres -spatial_aq 1 -temporal_aq 1 output.mkv