
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
- Encoder coverage: NVENC (Nvidia), QuickSync (Intel iGPU or Arc), and AMF (AMD) at minimum. Apple Silicon’s VideoToolbox for macOS.
- H.264, HEVC, and AV1 support on the encoders you care about. AV1 encoding is on Intel Arc, RTX 40-series and later, and Radeon 7000-series.
- Tone-mapping HDR to SDR on the fly. Half of home libraries are HDR now, and half of playback devices still need SDR downscales.
- Batch or queue mode if you’re re-encoding a library, not one file at a time.
- Container awareness: MKV, MP4, TS, and modern subtitle formats survive the transcode.
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:
- Free: Software transcoding only, local playback fine
- Plex Pass: Around $5/mo, $40/yr, or $120 lifetime, unlocks hardware transcoding, DVR, and mobile sync
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:
- Free (no paid tier, no telemetry, no accounts required)
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:
- Free: Software transcoding, no hardware
- Emby Premiere: Around $5/mo, $54/yr, or $119 lifetime
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:
- Free (open source, GPLv2)
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:
- Free (open source, LGPL / GPL depending on build)
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:
- Free tier for local use
- Pro tier around $50/yr for cloud dashboard and priority support
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:
- Free (open source, GPLv3)
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:
- Free (open source, GPLv2)
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.