How to Transcode Video with av1_nvenc in FFmpeg

This article provides a straightforward guide on how to transcode videos using NVIDIA's hardware-accelerated AV1 encoder (av1_nvenc) in FFmpeg. You will learn the system requirements, the basic command structure, and the essential parameters needed to optimize your encoding for quality and speed.

Prerequisites

To use the av1_nvenc encoder, you must meet the following hardware and software requirements:

  • GPU: An NVIDIA GeForce RTX 40-series (Ada Lovelace architecture) or newer graphics card, as older generations do not support hardware-accelerated AV1 encoding.
  • Drivers: Updated NVIDIA proprietary graphics drivers.
  • FFmpeg: A version of FFmpeg compiled with NVIDIA codec support (specifically --enable-nvenc and --enable-ffnvcodec).

Basic Command Syntax

The simplest command to transcode a video to AV1 using your NVIDIA GPU is:

ffmpeg -i input.mp4 -c:v av1_nvenc output.mkv

In this command:

  • -i input.mp4 specifies the source video file.
  • -c:v av1_nvenc selects the hardware-accelerated AV1 encoder.
  • output.mkv is the destination file.

Fine-Tuning Quality and Performance

To get the best results, you should control the bitrate, quality, and encoding speed using specific FFmpeg flags.

Instead of setting a strict bitrate, use Constant Quality (-cq) mode. This allows the encoder to use more data for complex scenes and less for simple ones, maintaining a consistent visual quality.

ffmpeg -i input.mp4 -c:v av1_nvenc -rc constqp -qp 28 output.mkv

Or using the variable bitrate with target quality:

ffmpeg -i input.mp4 -c:v av1_nvenc -rc vbr -cq 28 -b:v 0 output.mkv
  • The -cq or -qp value typically ranges from 1 to 51. A value between 24 and 30 is generally recommended for a great balance between file size and visual quality. Lower numbers mean higher quality and larger file sizes.

2. Encoding Presets

NVENC offers presets ranging from p1 (fastest, lowest quality) to p7 (slowest, highest quality). The default is p4.

ffmpeg -i input.mp4 -c:v av1_nvenc -preset p6 -cq 26 output.mkv

For high-quality archival, use -preset p6 or -preset p7. For fast real-time streaming, use -preset p1 to -preset p3.

3. Audio Pass-Through

To avoid re-encoding the audio track and preserve its original quality while saving CPU cycles, copy the audio stream directly:

ffmpeg -i input.mp4 -c:v av1_nvenc -preset p5 -cq 28 -c:a copy output.mkv

By combining these parameters, you can efficiently leverage your NVIDIA GPU to produce highly compressed, high-quality AV1 videos in a fraction of the time required by CPU-based encoders.