Blog

Jellyfin & Plex Hardware Transcoding: QuickSync on a Rented Server

Enable GPU transcoding (QuickSync / VAAPI) in Jellyfin and Plex on a Linux server with an Intel GPU: Docker, settings, codecs and 4K HDR benchmarks, 5× faster.

Jellyfin and Plex: hardware transcoding on a rented server

A media server spends its time transcoding: converting a 4K HEVC movie to 1080p H.264 for a phone, a TV or a slow connection. On the CPU, a single 4K stream can tie up the whole machine. With Intel QuickSync (the integrated GPU’s video engine), the same work runs in the background.

What the Intel UHD 770 GPU handles

CodecDecodeEncode
H.264✅✅
HEVC / H.265 8 and 10-bit (HDR)✅✅
VP9✅✅
AV1✅❌ (decode only)

An AV1 file is therefore decoded by the GPU and re-encoded to H.264 or HEVC, which covers every player.

The gain, measured

Test file: 4K HEVC 10-bit HDR, converted to 1080p H.264 at 6 Mbit/s, on a Linux GPU server (4 vCPU), on 2026-10-29:

MethodSpeed
CPU (x264, veryfast preset)2.4× real time, CPU at 100%
GPU (VAAPI, low-power encoder)12× real time, CPU almost idle

The command used, so you can test it yourself:

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi \
  -vaapi_device /dev/dri/renderD128 -i movie-4k.mkv \
  -vf 'scale_vaapi=w=1920:h=1080:format=nv12' \
  -c:v h264_vaapi -low_power 1 -b:v 6M -c:a copy output.mkv

Jellyfin

Jellyfin does hardware transcoding for free.

docker run -d --name jellyfin \
  --device /dev/dri/renderD128 \
  --group-add "$(stat -c %g /dev/dri/renderD128)" \
  -v /srv/jellyfin/config:/config -v /srv/media:/media \
  -p 8096:8096 jellyfin/jellyfin

Then go to Dashboard → Playback → Transcoding:

  1. Hardware acceleration: Intel QuickSync (QSV) (or Video Acceleration API (VAAPI));
  2. under Enable hardware decoding for, check H.264, HEVC, HEVC 10bit, VP9 and AV1;
  3. check Enable Intel Low-Power H.264 hardware encoder and Enable Intel Low-Power HEVC hardware encoder: it’s the fastest mode, and our VMs support it;
  4. check Enable Tone mapping to play HDR movies on SDR screens (OpenCL is already installed on our servers).

Plex

Plex hardware transcoding requires a Plex Pass subscription.

docker run -d --name plex --network host \
  --device /dev/dri \
  -v /srv/plex/config:/config -v /srv/media:/data \
  plexinc/pms-docker

In Settings → Transcoder, check Use hardware acceleration when available and Use hardware-accelerated video encoding. During playback, the dashboard shows “(hw)” next to the transcoded stream.

Check that the GPU is doing the work

On our servers, nvtop shows GPU load and the processes using it in real time. gpu-check verifies in one command that VAAPI, Vulkan and OpenCL work.

FAQ

How many simultaneous streams? It depends on the resolution and the plan (Perf 1, 2 or 3). A 4K HDR to 1080p stream runs at 12× real time when the GPU is idle; since the GPU is shared between several servers, the actual headroom also depends on their load. For household use (a few simultaneous streams), that’s plenty.

Do I need an IPv4 address? The server comes with a dedicated IPv6 address. For access from networks without IPv6, the dedicated IPv4 option is €5 excl. VAT/month.

Try it

A Linux GPU server with an Intel UHD 770 inside the VM, with VAAPI, QuickSync and OpenCL drivers already installed. From €14.99 excl. VAT/month, root access.