Jellyfin icon
Windows · macOS · Linux · Android · iOS · Free
Jellyfin 10.11.6
↓ Free Download

Jellyfin Hardware Acceleration Gpu Support Setup

GPU hardware acceleration cuts transcode load on your CPU and lets Jellyfin handle more simultaneous streams. Here's how to set it up properly in version 10.11.6.

Understanding Hardware Acceleration in Jellyfin

Hardware acceleration offloads video encoding and decoding to your graphics card instead of hammering your processor. This is crucial if you're running an open source media server and want to stream 4K content or support multiple remote users without stuttering. Jellyfin supports NVIDIA (NVENC), AMD (VCE), and Intel (QuickSync) encoders on Windows and Linux, plus VideoToolbox on macOS.

The performance difference is massive. A CPU-only transcode of a 1080p file might use 80–90% of your processor. With hardware acceleration enabled, it drops to 5–10%. That's the difference between smooth remote streaming and buffering hell.

Jellyfin Hardware Acceleration GPU Support Setup: Windows

Head to Dashboard → Transcoding in the web interface. Under "Encoding," select your GPU type from the dropdown. NVIDIA users choose "NVENC," AMD users pick "AMD VCE," and Intel integrated graphics users select "Intel QuickSync."

You'll need the right drivers installed first. NVIDIA requires the latest CUDA drivers (not just GeForce drivers—the full toolkit). AMD needs AMDGPU-PRO or the open-source AMDGPU stack on Linux. Intel QuickSync works with standard Intel drivers on Windows, but Linux users need Intel Media Driver (intel-media-driver).

Set the encoding preset to match your hardware. "Fast" uses less GPU memory but produces larger files. "Balanced" is the sweet spot for most setups. Don't pick "Slow" unless you're archiving and can wait hours per file.

Linux and Docker Configuration

Linux users get more granular control. If you're running it bare-metal on Ubuntu, install your GPU drivers first, then configure the Jellyfin media server via the Dashboard.

Docker users need to pass GPU access to the container. Add the `--gpus all` flag (NVIDIA) or `--device=/dev/dri` (AMD/Intel) to your run command. Here's the catch: permissions matter. Your container's user needs read/write access to the GPU device, or transcoding silently fails without error messages. Set the user to `root` or add the user to the `video` group.

For self hosted media on Docker, your compose file should look like:

```

environment:

  • JELLYFIN_FFmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg

devices:

  • /dev/dri:/dev/dri

```

Jellyfin Hardware Acceleration GPU Support Setup: Playback vs. Transcoding

Don't confuse playback acceleration with transcode acceleration. Playback acceleration uses your GPU to decode video on the client side—your phone, Roku, or web browser. Transcoding acceleration happens server-side when the file format doesn't match what the client supports.

Most clients handle playback fine without acceleration. Focus on transcode acceleration if your server CPU is already maxed out.

Testing and Troubleshooting

After enabling it, learn how to transcode videos by playing a file that requires format conversion. Check the Dashboard Logs for `[INFO] ffmpeg` entries. If you see "hw accel not available" or the encoder failing, your drivers aren't recognized.

Verify driver installation from the command line: `nvidia-smi` for NVIDIA, `clinfo` for AMD on Linux, or Intel's media capabilities tool. If the command doesn't exist, the drivers aren't properly installed.

Pro Tip: Set up a test user account and transcode a demanding file (like a high-bitrate 4K remux) while monitoring GPU usage with your system's GPU monitor. You'll see the difference instantly.

Compare Jellyfin's feature set with Plex to see what else the free streaming server offers beyond hardware support.