Transcoding is an unavoidable part of both the Plex and Jellyfin experiences. When it’s required, converting your videos in real time into a format that your client devices can handle is slow and resource-heavy and is the main cause of buffering and stuttering. But you can speed it up significantly by enabling hardware acceleration on both platforms. The big difference is that on Plex, you have to pay for it. On Jellyfin, it’s free.
What hardware acceleration is and why it matters
Eliminate buffering in a single stroke
Hardware acceleration can deliver much smoother and more reliable performance in Jellyfin. To understand how, it’s worth recapping how your media server plays videos.
Your Jellyfin server can handle nearly all common video formats and codecs. But that doesn’t mean it can play them all quite so easily. Whether a video can play directly depends on the capabilities of the device you’re watching it on. What plays natively on a modern iPad, for instance, might need transcoding on a smart TV or an old Fire Stick. And if you (or your other users) have multiple different devices on your network, your experience can vary massively.
Files that are supported use Direct Play, and the original file streams completely untouched. When you try to play a file that your hardware can’t handle for any reason, the Jellyfin server converts — or transcodes — it to a format that your device does support. It has to do it in real time (since you’re trying to watch it), and it is a very processor-intensive task.
By default, Jellyfin uses software transcoding via the CPU. It consumes a significant amount of processing power and can result in buffering. It limits how many simultaneous streams your server can handle and has a knock-on effect on other server tasks, causing Jellyfin to be generally slower and less responsive.
When you enable hardware acceleration, Jellyfin offloads the transcoding to your GPU. By using a piece of hardware that’s optimized for media decoding and encoding, it delivers much better and more efficient real-time performance. The video will start playing more quickly, even with multiple users on the system, and you’ll see less stuttering and buffering. Even a simple thing like scrubbing through a video becomes more responsive.
I keep hardware acceleration enabled on my Mac-based Jellyfin server, and it cuts the CPU usage for a single transcode from around 90% to a fraction of that. It’s one of the big selling points of Jellyfin compared to Plex, because while the latter does also offer it, you need an increasingly pricey Plex Pass subscription to use it.
How to enable hardware acceleration in Jellyfin
Toggle on the setting
Hardware acceleration is switched off by default in Jellyfin. Support is dependent on your hardware setup, which can bring potential compatibility and stability issues on some systems. Jellyfin supports several GPUs, including Intel, NVIDIA, AMD, and Apple.
To find the setting, open the Dashboard on your Jellyfin server and go to Playback > Transcoding. Click the Hardware Acceleration dropdown and select your hardware from the list.
This will reveal some additional settings that are specific to your GPU. I recommend checking the official documentation, which leads you through the setup for each option. This includes downloading the drivers you need on some operating systems and some recommended settings. For the most part, it’s as simple as enabling the setting on Windows and Mac, with Linux and Docker installations requiring more hands-on configuration.
Patrick Campanale / How-To Geek
The main settings you need to enable are for Decoding, to process the source video, and Encoding, to create the converted stream for the client device. Using both provides the biggest cut in CPU usage. There are also settings that let you choose a balance between speed and quality in the encoding, and you might want to enable tone mapping if you have a lot of 4K HDR files, as they’re the most demanding to transcode.
It’s important to remember that not every GPU supports every codec. Where you have a video that isn’t supported, the system will fall back to software transcoding instead. Longer term, it might be worth using an app like HandBrake to convert files that your hardware doesn’t support. Some GPUs also limit how many files can be transcoded at the same time.
But it’s likely that many of your files will be supported, and the benefits will become immediately obvious. Using the Activity Monitor tool on my Mac, there is a clear difference in CPU load depending on whether I’m using software transcoding or hardware-accelerated transcoding.
Free hardware acceleration is a key reason to choose Jellyfin over Plex
It’s a game-changing improvement
To be clear, Direct Play is still the preferred way to go for buffer-free streaming. Encoding your video files with codecs and in formats that your client devices can play without transcoding will deliver the smoothest and most stable performance of all.
But this takes some planning, and if you’ve got a large library, it simply won’t be viable to convert everything. When you do have to fall back on transcoding, hardware acceleration is a game-changer. It significantly cuts the load on the CPU, uses less power, and provides a better user experience for both you and everyone else who shares your library.
And the fact that it is free makes it one of the most compelling reasons to choose Jellyfin over Plex. It’s not that Plex lacks hardware acceleration; it has excellent support for it. But it treats it as a premium feature rather than something that’s available to everyone. Getting one of the biggest performance upgrades for free is hard to beat.








