Contrary to what the likes of Adobe would recommend, you don’t need to purchase proprietary software to enjoy the benefits of high quality hardware-accelerated encoding on Windows and Linux. Free alternatives exist, and they tend to do a very good job at it.
I’d strongly recommend the following solutions, based on personal experience:
First, on Windows:
- VidCoder & VidCoder beta: (Best installed side-by-side because the Beta gets updated faster). Upstream URL: https://vidcoder.codeplex.com/ . Features: Based on Handbrake’s engine, can utilize Intel QuickSync and it’s user interface has more flexible options than HB. For instance, you can enable file size limits where the app will calculate average and maximum bitrate for your output file, and even do two-pass encodes with Intel QuickSync hardware acceleration. Pretty awesome! Ideal for beginners and intermediate users. Link to software page.
- StaxRip: This is a minimalist approach with a basic UI and a wide variety of tools that allow for a wide selection of hardware encoders on demand. For instance, StaxRip packs QSVEnc (For Intel QuickSync), NVENC ( for H.264 & H.265 hardware accelerated encoding on supported Maxwell Gen 2 GPUs) and other tools. Very versatile and minimalistic, ideal for advanced users familiar with codec parameters. Here’s their project page.
MediaCoder: This is an all-in-one encoder with a vast support for many formats. Google it. Problems: Nagware for the free edition. However, very functional and well polished, ideal for intermediate and expert users. NVIDIA NVENC, CUDA, and Intel’s QuickSync are fully supported. (For CUDA, use an older driver prior to R337. NVENC only available on Maxwell Gen 1 and above). Here’s the project’s home page.
Hybrid: What I said about StaxRip can also be said of Hybrid Media Encoder. However, Hybrid requires initial configuration (Output directory) BEFORE it can be used as this setting is left blank on first use. Also, Hybrid has no hand-holding, and it assumes that the user is an EXPERT on all aspects, including codec tuning options and selected container formats. Of note is it’;s excellent job queue system that allows you to run as many jobs in parallel as possible, and can be changed ON THE FLY. Get it from here.
Xmedia Recode: Perhaps one of the most advanced software packages out there, it also allows two-pass VBR encodes with NVIDIA NVENC and supports a wide variety of video codecs. Intel’s QuickSync is also fully supported. Here’s the project’s home page.
A’s Video Converter: Perhaps one of the smallest and most versatile encoders out there, it supports all known hardware accelerated encoders on Windows, from NVIDIA’s NVENC, Intel’s QuickSync to AMD’s VCE on compatible hardware. As an extra bonus, on multi-GPU systems, one can also select the GPU device to be used per acceleration option. The author also includes optional integration with the Bluesky Video capture for screen casting and in-game recording. See the project page here.
Secondly, on Linux:
First, I assume that you can competently use the distribution of your choice, and that you can install and manage software on the rig from both the terminal and graphical installers.
Carrying on, a few notes:
- Some distributions (Fedora and Ubuntu) offer third party repositories (such as Negativo’s repo on Fedora for NVIDIA NVENC enabled ffmpeg and driver packages) that make it easy to install these encoders. Do your research and carry on.
Ensure your GPU drivers are up to date.
Now, to the sweet spot:
- Hybrid Encoder: This awesome tool is also available on Linux, and currently, supports offloading some portions of H.264 encode (via x264) with OpenCL support. At the moment, this will accelerate lookahead function in x264 and the performance boost is moderate. YMMV depending on your hardware. As tested, this works on all major OpenCL ICDs out there (NVIDIA, AMD with the fglrx driver, and Intel’s OpenCL via the Beignet project). This also works with the opensource OpenCL stacks on Linux such as pocl and the Mesa LLVM OCL backend.
TraGtor: This is an ffmpeg and Libav frontend. On Linux, it will support any video format and encoder that ffmpeg recognises, and gives a drop-down menu that allows for codec selection. In this case, install ffmpeg 2.4.5+ or libav with NVIDIA NVENC support (see Negativo’s Fedora repo or compile from source on other distributions; Arch Linux has ffmpeg-nvenc in AUR) and select nvenc ( or h264/h265-nvenc) under codec options in TraGtor, depending on your hardware. Note that H.265 is only supported on Maxwell GM200,GM206 and Pascal’s GP104 microarchitecture SKUs for now.
Use ffmpeg or libav directly from the commandline. See notes on (2) for using NVENC SIP Block on Linux, and tune your encode parameters with the correct encoder (nvenc , libnvenc, etc) as is needed.
Notes on AMD GCN1.0+ hardware: On Linux, AMD VCE 1.0 & 2.0 are supported on the newer AMDGPU driver via OpenMAX IL.
You can now configure libav and ffmpeg with the –enable-omx flag and you’ll get the hardware-accelerated H.264 encoder offloading H.264 transcode to the VCE block via the h264_omx encoder (as selected on runtime). Note that the Raspberry Pi ‘s Broadcom-based GPU can also offload H.264 encoding via OpenMAX too.
At the moment, OpenMAX IL is also exposed via gstreamer, so any gstreamer based encoder can utilize this technology on supported platforms.