Supported Hardware and Configurations
- AMD Radeon RX5000 (RDNA) and RX6000 (RDNA2) series GPU or better
- Windows 10 or later
- Limited support is available on Ubuntu 20.04 and later.
Please note, these are not hard limits. Hardware encoding via VCN might work on older series GPUs and older operating systems, but this is not officially supported.
On Ubuntu Linux, AMD Radeon Software for Linux version 22.40 or later is required to use the VCN encoder. Install using the
amdgpu-pro-install script according to AMD’s installation guide. Additionally, you must manually install the
amf-amdgpu-pro package included in the download.
Support for the AMD VCN encoder is enabled in preferences on the video tab. If your system is not supported, the option will be disabled.
The following presets are available under the ‘Hardware’ category in the presets menu:
- H.265 VCN 2160P 4K
- H.265 VCN 1080p
These are a good starting point for configuring HandBrake to use these encoders.
HandBrake supports the AMD VCN hardware encoder but does NOT support the hardware decoder.
The CPU will still be used for:
- Video decoding
- All video filters
- Audio encoding
- HandBrake’s engine, A/V sync etc
These operations all happen in parallel as the job progresses. As such, it is normal to see high (or even 100%) CPU utilisation even when using VCN.
It is also common, particularly on lower-end or older hardware, for the CPU to be a bottleneck which will cause lower than expected performance. To minimize this effect, disable any filters that you do not require.
The AMD VCN hardware encoder has a limited set of advanced encoder options. Generally speaking, it is not recommended to change these parameters, as the built-in presets offer a good range of options for common uses.
If using HandBrake’s graphical interface, you can set the options in the
Advanced Options field on the
Video tab in the following format:
If using HandBrake’s command line interface, use the
--encopts parameter as follows:
Option value types
The following value types are supported (each option only accepts one value type):
A number that can be written without a fractional or decimal component.
0 means off (or disabled).
1 means on (or enabled).
An alphanumeric string of characters. See the option’s comments for acceptable values.
|coder||string||✓|| Coder selection. Values:
|preanalysis||boolean||✓||✓|| Set to
|vbaq||boolean||✓||✓|| Set to
|enforce_hrd||boolean||✓||✓|| Set to
|max_au_size||int||✓||✓|| Maximum Access Unit size for rate control, in bits. Default:
|me_half_pel||boolean||✓||✓|| Set to
|me_quarter_pel||boolean||✓||✓|| Set to
|bf_delta_qp||int||✓|| B-Picture Delta QP. The values scale is
|bf_ref||boolean||✓|| Set to
|bf_ref_delta_qp||int||✓|| Reference B-Picture Delta QP. The values scale is
|intra_refresh_mb||int||✓|| Number of Intra-Refresh Macroblocks per slot. Default:
|gops_per_idr||int||✓||GOPs per IDR 0-no IDR will be inserted|