Knowledge Base · Troubleshooting

Why won't my Jellyfin or Plex transcode?

Updated October 2026. No affiliate links on this page. Based on the Jellyfin and Plex docs and owner reports.

If Jellyfin or Plex maxes out your processor and stutters on 4K, hardware transcoding isn't running. It fails quietly, which makes it frustrating, and it's almost always one of four causes. Work through them in this order:

  1. It's not turned on in the server's settings.
  2. The server runs in Docker and can't reach the graphics chip.
  3. Your processor has no Quick Sync, often because it's an Intel "F" chip.
  4. You're on free Plex, which needs a paid Plex Pass for hardware transcoding.
Words you'll see in this guide
  • Transcoding: converting a video on the fly so it plays smoothly on a phone or TV that can't handle the original file.
  • Hardware acceleration: letting a dedicated chip do a job, like video conversion, instead of the main processor.
  • Quick Sync: a video engine built into many Intel chips that converts video fast and with little power.
  • iGPU: graphics built into the main processor, with no separate graphics card. Quick Sync lives here.
  • Container: a sealed box that holds an app and everything the app needs to run.
  • Direct play: your TV or phone plays the video file as it is, with no converting needed.

See the full glossary

Two things catch most people before they touch a setting:
  • Plex requires a paid Plex Pass for hardware transcoding. Jellyfin's is free.
  • Any Intel processor ending in "F" (like the i5-12400F) has its built-in graphics turned off, so it has no Quick Sync at all.

Fix 1: Turn hardware acceleration on

It's off by default and easy to miss.

  1. In Jellyfin: go to Dashboard, then Playback, then Transcoding. Set Hardware acceleration to your hardware: Intel QSV or VA-API, NVIDIA NVENC, or AMD.
  2. In Plex: go to Settings, then Transcoder, and turn on Use hardware acceleration when available.
  3. Play a file that needs converting and open the server's activity dashboard.

    You should see: the stream marked as hardware, or "(hw)" in Plex.

Fix 2: Give your Docker container the graphics chip

This is the most common cause on a home server. A container can't see the graphics chip unless you pass it in.

Intel or AMD (Quick Sync or VA-API):

  1. On the server, find your render group's number:
    getent group render | cut -d: -f3
  2. Add these lines under your Jellyfin service in your compose file, using that number:
        devices:
          - /dev/dri:/dev/dri
        group_add:
          - "YOUR-RENDER-GROUP-NUMBER"
  3. Recreate the container:
    docker compose up -d
  4. Check the container can see the chip:
    docker exec -it jellyfin ls /dev/dri

    You should see: renderD128 in the list. If /dev/dri is missing, the server can't use Quick Sync and falls back to the processor.

NVIDIA: install the NVIDIA Container Toolkit, pass the graphics card into the container, then choose NVENC in the server's settings.

New to containers? See Docker vs Proxmox.

Fix 3: Check that your chip has a video engine

Hardware transcoding needs a hardware video engine. On Intel, that's Quick Sync, inside the built-in graphics. Two traps:

No Quick Sync? An Intel Arc A310 or A380 fits most desktops and adds strong hardware transcoding. See the PC upgrade parts guide.

Fix 4: Get Plex Pass, or switch to Jellyfin

On free Plex, hardware transcoding won't run. You can buy a Plex Pass, or move to Jellyfin, which does the same thing for free. My Pi media streamer and media server guides both lean toward Jellyfin for this reason.

Quick diagnosis: play a file that has to be converted and open the server's activity dashboard. If it says software, or "transcode" with no "(hw)", check in order:
  • Is hardware acceleration turned on?
  • Can the container see the graphics chip?
  • Does the processor have Quick Sync?
  • Is Plex asking for Plex Pass?

Or avoid transcoding altogether

Often the fastest fix is not converting at all. If your player supports the file's format, the server can direct play it with almost no processor use. Keep your library in widely supported formats like H.264, and use the app on your TV instead of a browser. A mini PC with Quick Sync then handles the times you do need to convert.

Quick answers

Why is my Jellyfin or Plex transcoding on the CPU instead of the GPU?

Hardware acceleration isn't active. The usual causes are that it's not turned on in the settings, the Docker container can't see the graphics chip, or the processor has no Quick Sync.

Do I need Plex Pass for hardware transcoding?

Yes. Plex requires a paid Plex Pass for hardware transcoding. Jellyfin offers it for free.

Why does my Intel CPU not hardware transcode?

Most likely it's an Intel "F" chip, like the i5-12400F, which has its built-in graphics turned off. Quick Sync lives in those graphics, so there's nothing to use.

How do I enable hardware transcoding in a Docker container?

Pass the graphics device into the container. For Intel or AMD, add /dev/dri as a device and add the render group so the container has permission. For NVIDIA, install the NVIDIA Container Toolkit and pass the card in.