At the present, Handbrake supports the following hardware-accelerated encoders for H.264/AVC:
Intel QuickSync (on Windows and on Linux). This is compatible with at least Intel-based Sandybridge (2nd generation Core) - series processor lines with integrated graphics enabled and exposed to the operating system. Recommended hardware for acceptable encoding quality: Haswell (4th generation Core-series) and beyond, which introduced the concept of fine-grained target levels (TUs), lookahead functions (such as LA-BRC and ICQ encoding modes) with significantly better performance. See usage guide from handbrake documentation here.
NVIDIA's NVENC: This requires at least NVIDIA's Kepler (GK+) series GPUs and above from the high performance consumer SKUs (GTX-series) and the professional lineups (Quadro and Tesla GPUs based on Kepler and beyond). This is available on both Windows and Linux.
Of note is that with NVENC, you'll be artificially limited to at most two simultaneous encode sessions on the consumer SKUs, whereas the professional lineup remains unaffected by this. For your reference on specific encoder capabilities, refer to the GPU matrix. For best encoder performance and quality, stick to the latest iteration of Pascal and Volta GPUs.
Optionally:
- AMD AMF's encoding support is also available in the current nightly builds for Windows ONLY. A special note about AMD's AMF (that taps into the VCE encoder built into the hardware in all GCN+ SKUs) is that on newer hardware, such as Polaris (RX 400+ series) and Vega, some advanced encoder tunings for H.264/AVC were deprecated as they introduced HEVC encoding support. What AMD dropped was B-frame encoding, with no support for adaptive quantization (AQ), a feature that the aforementioned hardware-based encoders (QuickSync and NVENC) have implemented for generations with no regressions. Also, see this on notes concerning throughput metrics on what to expect.
As far as Apple's support is concerned, this is at best, tentative. The VideoToolBox API, where implemented beyond the scope of Handbrake, also seems to have a very limited set of controls. Even if Handbrake adopts it upstream, don't expect miracles in terms of quality retention and throughput.
Note that you may require to use the latest nightly build to use the latest encoder features on your platform, as at the present. This will definitely change in the future.
For h.264 encoding, handbrake uses software encoder x264 (videolan). Some answers below imply handbrake uses ffmpeg, which can use x264 or hw (GPU) implementations. Although this old (but still relevant) question probably is not asking "how to make handbrake faster", but rather "how to make h.264 encoding faster". Answers will have a shelf-life (some are already expired); but for now, if doing ML and/or batch processing you may have to match an implementation to your hardware
– michael – 2018-01-04T04:49:16.593fwiw, I found this comment from ffmeg interesting: "Hardware encoders typically generate output of significantly lower quality than good software encoders like x264, but are generally faster and do not use much CPU resource. (That is, they require a higher bitrate to make output with the same perceptual quality, or they make output with a lower perceptual quality at the same bitrate.) "
– michael – 2018-01-04T04:53:01.190Related: Accelerated Video Compression – in any way, you want to have an NVIDIA card for this and be willing to spend money.
– slhck – 2011-10-03T21:01:20.797Another related blog post: Encode Your Videos Using Your GPU
– slhck – 2011-10-03T21:18:29.427