- Most 2011 and later Macs
Please note, these are not hard limits. Hardware encoding via VideoToolbox might work on older series GPUs and older operating systems, but this is not officially supported.
If your computer is supported you will see one or more of the following video encoders added to the encoder control on the
- H.264 (VideoToolbox)
- H.265 (VideoToolbox)
- H.265 10bit (VideoToolbox)
Choice of the underlying hardware encoder (AMD VCE or Intel Quick Sync Video) is not available. The highest quality option will typically be chosen.
Only video encoding is performed by the hardware encoder. Every stage prior to and after video encoding including decoding, filters, audio/video sync, audio encoding, muxing, etc., is performed by the CPU. As a result, it is normal to have high (even 100%) CPU utilisation during encodes.
It is common, particularly on lower-end hardware, for the CPU to be a bottleneck for the hardware video encoder. To minimize this effect, disable any filters that you do not require.
The VideoToolbox 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.
|gpu-registryid||int||✓||✓||GPU selection. If set, the VideoToolbox will only use a hardware encoder running on the GPU specified by the provided GPU registryID.|
|bframes||boolean||✓||✓|| Set to
|cabac||boolean||✓|| Set to
|slice-max-size||boolean||✓||Set the maximum slice size for H.264 encoding in bytes.|
|vbv-bufsize||boolean||✓||✓||Sets the size of the VBV buffer in bytes per second.|
|vbv-maxrate||boolean||✓||✓||Sets the maximum rate the VBV buffer should be assumed to refill at, in bytes per second.|
|max-frame-delay||int||✓||✓||The maximum frame delay count is the maximum number of frames that a compressor is allowed to hold before it must output a compressed frame.|