--- Type: article Title: Intel Quick Sync Video Project: HandBrake Project_URL: https://handbrake.fr/ Project_Version: 1.5.0 Language: English Language_Code: en Authors: [ Bradley Sepos (BradleyS), Scott (s55) ] Copyright: 2022 HandBrake Team License: Creative Commons Attribution-ShareAlike 4.0 International License_Abbr: CC BY-SA 4.0 License_URL: https://handbrake.fr/docs/license.html --- Intel Quick Sync Video ====================== ## Supported Hardware and Configurations - Intel Skylake (6th Generation Core) CPU or later with Intel HD Graphics or better - Windows 10 - Linux - FreeBSD Please note, these are not hard limits. Hardware encoding via Intel QSV *might* work on older series GPUs and older operating systems, but this is not officially supported. A plugin with all required components for Intel QSV encoding using the Flatpak distribution of HandBrake is available on the official [HandBrake website](https://handbrake.fr). ## Enabling support Support for the Intel Quick Sync Video encoder is enabled in preferences on the video tab. If your system is not supported, the option will be disabled. ## Presets The following presets are available under the 'Hardware' category in the presets menu: - H.265 QSV 2160P 4K - H.265 QSV 1080p These are a good starting point for configuring HandBrake to use these encoders. ## Performance HandBrake supports both QSV encode and decode. The CPU will still be used for: - Video decoding (if QSV decode is disabled or your source is in a format which is not supported by the QSV hardware) - Most video filters - Audio encoding - HandBrake's engine, A/V sync etc - Subtitles - Muxing 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 QSV. 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. ## Advanced options The QSV 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: option1=value1:option2=value2 If using HandBrake’s command line interface, use the `--encopts` parameter as follows: --encopts="option1=value1:option2=value2" ### Option value types The following value types are supported (each option only accepts one value type): - integer A number that can be written without a fractional or decimal component. - boolean 0 means off (or disabled). 1 means on (or enabled). - string An alphanumeric string of characters. See the option’s comments for acceptable values. ### Options list - target-usage (or tu) - Sets the trade-off between quality and speed, from 1 (best quality) to 7 (fastest speed). - Default: 2 - num-ref-frame (or ref) - Number of reference frames, from 1 to 16. - 0 means unspecified (set at runtime by the implementation). - Default: 0 (unspecified) - gop-ref-dist - Distance between I or P reference frames, from 1 to 16. - -1 means automatic (4 in constant QP mode, 3 otherwise). - 0 means unspecified (set at runtime by the implementation). - 1 means B-frames will not be used. - Default: -1 (automatic) - Note: may be sanitized to a lower value in some cases to avoid hangs. - gop-pic-size (or keyint) - Number of pictures within the current GOP (aka "keyframe interval"). - -1 means automatic (32 in constant QP mode, 1 second long otherwise). - 0 means unspecified (set at runtime by the implementation). - 1 means only I-frames will be used. - 2 means B-frames will not be used. - Default: -1 (automatic) - cavlc - Use CAVLC instead of CABAC entropy coding. Reduces compression efficiency. - It may improve encoding performance slightly, especially on older hardware. - Note: you can also use `cabac` (same as `cavlc` with reversed meaning). - Default: 0 (CAVLC off, CABAC on) - b-pyramid - Enables or disables "Pyramidal B-frames" which can improve compression efficiency. - It may be incompatible with some playback devices (such as the first generation AppleTV). - Note that this options modifies other parameters (gop-ref-dist, num-ref-frame, gop-pic-size). - -1 means automatic (on in constant QP mode, off otherwise). - 0 means off (disabled). - 1 means on (enabled). - Default: -1 (automatic) - Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.6 of the Media SDK API. - mbbrc - Enables macroblock-level bitrate control that generally improves subjective visual quality. - It may have a negative impact on performance and objective visual quality metrics. - Default: 1 (on) - Note: not compatible with Constant QP or LookAhead rate control methods (ignored). - Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.6 of the Media SDK API. - extbrc - Use extended bitrate control algorithms. - It generally improves objective visual quality metrics and subjective visual quality, - but can also lead to violation of HRD conformance and may significantly reduce performance. - Default: 0 (off) - Note: not compatible with Constant QP or LookAhead rate control methods (ignored). - Caveats: requires driver support for version 1.6 of the Media SDK API. - trellis - Enables trellis quantization. - 0 means trellis is disabled. - 1 means trellis is enabled for I-frames only. - 2 means trellis is enabled for I and P-frames. - 3 means trellis is enabled for all frames (I, P and B). - Default: 0 (disabled) - Note: ignored if the target-usage is too low (usually, only works in combination with tu=1). - Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.7 of the Media SDK API. - lookahead (or la) - Use the LookAhead (LA or LA_ICQ) bitrate control algorithm. - Default: 1 (on) - Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.7 (1.8 for LA_ICQ) of the Media SDK API. - lookahead-depth (or la-depth) - If LookAhead bitrate control is enabled, number of frames that are analyzed before encoding, from 11 to 60. - Default: 40 - Note: may be sanitized to a lower value in some cases to avoid hangs. - Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.7 of the Media SDK API. - force-cqp - In Constant Quality mode, use Constant QP rate control, even if Intelligent Constant Quality is available. - Default: 0 (ICQ enabled if available) - cqp-offset-i | cqp-offset-p | cqp-offset-b - In constant QP (CQP) bitrate control mode, specify offset from the global quality/QP value for I, P and B-frames. - Defaults are 0, 2 and 4, respectively. - vbv-maxrate - Sets the maximum rate the VBV buffer should be assumed to refill at, in kilobits per second (Kbps). - Default: 0 (set at runtime by the implementation) - Note: not compatible with Constant QP, Intelligent Constant Quality or LookAhead rate control methods (ignored). - vbv-bufsize - Sets the size of the VBV buffer in kilobits (Kb). - Default: 0 (set at runtime by the implementation) - Note: not compatible with Constant QP, Intelligent Constant Quality or LookAhead rate control methods (ignored). - vbv-init - Sets how full the VBV Buffer must be before playback starts. - If it is less than 1, then the initial fill is: vbv-init * vbv-bufsize. - Otherwise it is interpreted as the initial fill in kilobits (Kb). - Default: 0 (set at runtime by the implementation) - Note: not compatible with Constant QP, Intelligent Constant Quality or LookAhead rate control methods (ignored).