Plex

XDA-Developers pointed out this week that most home servers do transcoding wrong: they lean on the CPU, run out of headroom on the third simultaneous stream, and buy a bigger CPU when a used $80 GPU would double throughput. That framing is mostly right. Hardware transcoding through NVENC (Nvidia), QuickSync (Intel), or AMF (AMD) offloads video encoding off the CPU and multiplies how many concurrent 4K to 1080p downscales a single box can serve.

We tested 8 desktop apps that either transcode video themselves or manage a media library that transcodes on demand. The list covers the mainstream media servers (Plex, Jellyfin, Emby), the standalone transcoders every home lab uses (HandBrake, FFmpeg), and the automation tools that batch-process libraries overnight (Tdarr, Unmanic). All eight run on Windows, macOS, or Linux; every one can invoke GPU hardware encoders when the drivers are present.

What to look for in a hardware transcoding app

Quick comparison

App Best for OS Encoders Cost
Plex Polished media server with the largest client ecosystem Windows, macOS, Linux NVENC, QuickSync, AMF, VideoToolbox Free (Plex Pass around $5/mo unlocks hardware)
Jellyfin Open-source Plex alternative with zero paywall on hardware Windows, macOS, Linux NVENC, QuickSync, AMF, VideoToolbox Free
Emby Paid middle ground between Plex and Jellyfin Windows, macOS, Linux NVENC, QuickSync, AMF, VideoToolbox Free (Premiere around $5/mo)
HandBrake Encoding a single file with fine control Windows, macOS, Linux NVENC, QuickSync, AMF, VideoToolbox Free (open source)
FFmpeg Scripted pipelines, everything else Windows, macOS, Linux Every encoder listed Free (open source)
Tdarr Bulk library normalization Windows, macOS, Linux, Docker NVENC, QuickSync, AMF Free (paid Pro tier)
Unmanic Watch-folder automation for home labs Linux, Docker (primary) NVENC, QuickSync, AMF Free (open source)
Kodi Local playback with hardware decode Windows, macOS, Linux Decode only Free (open source)

1. Plex — best polished media server

Plex is the default choice for anyone who wants a media server that looks like a streaming app to guests. The transcoding pipeline is one of the most tested in the category, and it picks the right hardware encoder automatically once you toggle the Plex Pass option. NVENC on a used GTX 1660 handles roughly a dozen concurrent 4K to 1080p H.264 streams; QuickSync on an 11th-gen or newer Intel iGPU handles about half that at a fraction of the power draw.

Where it falls short: Hardware transcoding is locked behind Plex Pass. The company’s product direction (ads, mobile subscription tier, remote playback changes) frustrates long-time users, and forum threads document repeated pushback on features being paywalled after the fact.

Pricing:

Platforms: Windows, macOS, Linux

Download: plex.tv/media-server-downloads

Bottom line: Best for households with non-technical viewers who need the client to feel like Netflix.

2. Jellyfin — best free open-source option

Jellyfin is the Plex fork that keeps every feature free, including hardware transcoding. The setup is more hands-on than Plex (drivers, VAAPI passthrough on Linux, and the encoder settings are exposed rather than hidden), but the ceiling on what you can do is higher. HEVC and AV1 hardware encoders work on Jellyfin without a subscription, and the tone-mapping pipeline handles HDR-to-SDR downscales the same way Plex does.

Where it falls short: Client apps are less polished than Plex’s, especially on smart TVs. Configuration takes an evening the first time. Community support is good but slower than a paid product’s.

Pricing:

Platforms: Windows, macOS, Linux, Docker

Download: jellyfin.org/downloads

Bottom line: Best for anyone who wants hardware transcoding without paying rent for it.

3. Emby — best middle ground

Emby is the fork that Jellyfin itself was forked from. It’s the middle path: more polished than Jellyfin’s clients, more open than Plex’s paywall structure. Hardware transcoding sits behind Emby Premiere, but the subscription is cheaper than Plex Pass and the license terms are friendlier.

Where it falls short: Smaller community than Plex or Jellyfin. Third-party client ecosystem is thinner. Some encoders (AV1 particularly) lagged Jellyfin by several months at launch.

Pricing:

Platforms: Windows, macOS, Linux, Docker

Download: emby.media/download.html

Bottom line: Best when Plex Pass feels like a bad deal but Jellyfin’s rough edges are a dealbreaker.

4. HandBrake — best single-file encoder

HandBrake is the desktop encoder for when you have one file that needs to be re-encoded well, not a whole library. The GUI exposes every setting the underlying x264, x265, and hardware encoders accept, and the presets ship reasonable defaults for common targets (Roku, Apple TV, web upload). Hardware acceleration through NVENC, QuickSync, AMF, and VideoToolbox is a checkbox in the video tab.

Where it falls short: Batch mode exists but isn’t the point; Tdarr and Unmanic do library-scale automation better. HandBrake’s hardware presets are conservative, so throughput per file is a bit lower than a hand-tuned FFmpeg command.

Pricing:

Platforms: Windows, macOS, Linux

Download: handbrake.fr/downloads.php

Bottom line: Best for one-off re-encodes with control over the output.

5. FFmpeg — best scripted pipeline

FFmpeg is the CLI that every other tool on this list calls under the hood. Direct use makes sense once you’re scripting: overnight re-encodes, watch-folder pipelines that the packaged tools don’t quite fit, or shelling out from a home-lab script. Every encoder listed above (NVENC, QuickSync via qsv, AMF, VideoToolbox, VAAPI on Linux) is a command flag away, and complex filtergraphs let you chain scale, tone-map, subtitle burn-in, and encoder in one command.

Where it falls short: No GUI. Documentation is comprehensive but disorganised. The learning curve on filtergraphs takes real time.

Pricing:

Platforms: Windows, macOS, Linux

Download: ffmpeg.org/download.html

Bottom line: Best when you already know exactly what you want and don’t want a GUI in the way.

6. Tdarr — best bulk library normalizer

Tdarr is the automation tool for when your library is a mess of H.264, HEVC, and legacy MPEG-2 rips and you want everything normalised to a single codec at target bitrates. The stack has a server, worker nodes (which can run on separate machines with different GPUs), and a web dashboard. Plugins define the transcode logic; the community library covers most of the common jobs (transcode-to-HEVC, strip-audio-tracks, remux-to-MKV).

Where it falls short: Setup is more involved than a single-binary media server. The plugin system is powerful but idiosyncratic; debugging why a file skipped or errored takes patience.

Pricing:

Platforms: Windows, macOS, Linux, Docker

Download: home.tdarr.io

Bottom line: Best when your library is measured in terabytes and you want it normalised without babysitting.

7. Unmanic — best watch-folder automation

Unmanic is the lighter cousin of Tdarr: point it at a folder, define which files should be re-encoded (by codec, bitrate, container), and it does the work in the background. Hardware acceleration through NVENC, QuickSync, and AMF is a plugin toggle. The web UI shows queue, worker load, and file history.

Where it falls short: Windows and macOS builds exist but Linux/Docker is the maintained path. Plugin ecosystem is smaller than Tdarr’s.

Pricing:

Platforms: Linux, Docker (Windows and macOS via Docker)

Download: docs.unmanic.app

Bottom line: Best for home lab operators who already live in Docker.

8. Kodi — best local playback with hardware decode

Kodi doesn’t transcode on the server; it plays back locally with hardware decode. Include it on the list because half of hardware-transcoding conversations end with “actually, if the client can direct-play, you don’t need to transcode at all.” Kodi’s decode support (NVDEC, QuickSync decode, AMF decode, VideoToolbox) covers almost every codec a modern library ships, which lets a Plex or Jellyfin server skip the transcode entirely for Kodi clients.

Where it falls short: Not a media server itself; complements one. The interface takes tuning to feel modern; skins help.

Pricing:

Platforms: Windows, macOS, Linux, plus Android, tvOS, Raspberry Pi

Download: kodi.tv/download

Bottom line: Best paired with a media server so hardware transcoding runs only when the client actually needs it.

How to pick the right one

If you want the polished path with Netflix-like clients: Plex plus Plex Pass.

If you want the free path and don’t mind an evening of setup: Jellyfin. NVENC, QuickSync, AMF, and AV1 encoding all work without a subscription.

If Plex Pass feels expensive and Jellyfin feels raw: Emby Premiere.

If you’re encoding one file, well: HandBrake.

If you’re scripting overnight jobs: FFmpeg.

If your library needs to be re-encoded end to end: Tdarr on a Docker host, workers on any box with a spare GPU.

If Docker is already your default: Unmanic with a NVENC-capable card.

If you want to avoid transcoding entirely on clients you control: put Kodi on those clients.

FAQ

Do I need a dedicated GPU for hardware transcoding?

No. Intel QuickSync on an 8th-gen or newer iGPU handles a few 4K to 1080p streams comfortably; a used GTX 1650 or 1660 with NVENC adds another five to ten concurrent streams. Dedicated GPUs matter when you need AV1 hardware encoding (RTX 40, Arc, RX 7000) or many concurrent 4K streams.

Does Jellyfin really give me hardware transcoding for free?

Yes. Jellyfin ships hardware transcoding for NVENC, QuickSync, AMF, and VideoToolbox with no paywall or subscription. Plex and Emby both gate the feature behind their paid tiers.

Which encoder is best for a Plex or Jellyfin server?

NVENC on modern Nvidia cards (RTX 20 series and up) produces the best quality per bit at high throughput. QuickSync is close behind at a fraction of the power. AMF on modern Radeon is competitive on H.264, weaker on HEVC. AV1 encoders on RTX 40, Intel Arc, and RX 7000 are the best available for the format.

Can I run Plex and Jellyfin side by side?

Yes, and many people do while they migrate. Point both at the same library folder; they read the files without conflict. Only one server transcodes a given playback at a time.

Why does 4K HDR content still hammer my CPU on a hardware-capable box?

Tone-mapping HDR to SDR is the usual culprit. Older builds did the tone-map on the CPU even when the encode ran on the GPU. Recent versions of Plex, Jellyfin, and Emby moved tone-mapping onto the GPU too. If the CPU is still hot, verify the tone-map setting in the server’s transcoder page.

Is AV1 hardware transcoding worth the upgrade?

For a small home server, probably not yet: most client devices still request H.264 or HEVC, and the AV1 quality-per-bit win only shows up in HDR content at high bitrates. For a home lab that stores everything long-term, AV1 saves 30 to 50% on file size at matched quality, which pays for the GPU over a few terabytes.