Blog

Jellyfin e Plex: transcodificação por hardware QuickSync

Ativar a transcodificação por GPU (QuickSync / VAAPI) do Jellyfin e do Plex num servidor Linux com GPU Intel: Docker, definições, codecs e medições 4K HDR.

Jellyfin e Plex: transcodificação por hardware num servidor alugado

Um servidor multimédia passa o tempo a transcodificar: converter um filme 4K HEVC para 1080p H.264 para um telemóvel, uma televisão ou uma ligação lenta. Na CPU, um único fluxo 4K pode ocupar a máquina inteira. Com o Intel QuickSync (o motor de vídeo da GPU integrada), o mesmo trabalho é feito em segundo plano.

O que faz a GPU Intel UHD 770

CodecDescodificaçãoCodificação
H.264✅✅
HEVC / H.265 8 e 10 bits (HDR)✅✅
VP9✅✅
AV1✅❌ (só descodificação)

Um ficheiro AV1 é portanto descodificado pela GPU e depois recodificado em H.264 ou HEVC, o que basta para todos os leitores.

O ganho, medido

Ficheiro de teste 4K HEVC 10 bits HDR, convertido para 1080p H.264 a 6 Mbit/s, num servidor Linux GPU (4 vCPU), a 29/10/2026:

MétodoVelocidade
CPU (x264, preset veryfast)2,4× o tempo real, CPU a 100 %
GPU (VAAPI, codificador low-power)12× o tempo real, CPU quase livre

Comando usado, para testar do seu lado:

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

Jellyfin

O Jellyfin faz a transcodificação por hardware gratuitamente.

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

Depois, em “Dashboard” → “Playback” → “Transcoding”:

  1. “Hardware acceleration”: Intel QuickSync (QSV) (ou VAAPI);
  2. marque a descodificação por hardware para H.264, HEVC, HEVC 10 bits, VP9 e AV1;
  3. marque o codificador de baixo consumo da Intel (“Intel Low-Power”) para H.264 e HEVC: é o modo mais rápido, e é suportado pelas nossas VM;
  4. ative o tone mapping para ver filmes HDR em ecrãs SDR (o OpenCL já está instalado nos nossos servidores).

Plex

A transcodificação por hardware do Plex exige uma subscrição Plex Pass.

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

Em “Settings” → “Transcoder”, marque “Use hardware acceleration when available” e “Use hardware-accelerated video encoding”. Durante uma reprodução, o painel mostra «(hw)» ao lado do fluxo transcodificado.

Verificar que a GPU está a trabalhar

Nos nossos servidores, o nvtop mostra em direto a carga da GPU e os processos que a usam. O gpu-check verifica num só comando que VAAPI, Vulkan e OpenCL funcionam.

Perguntas frequentes

Quantos fluxos ao mesmo tempo? Depende da resolução e da oferta (Perf 1, 2 ou 3). Um fluxo 4K HDR para 1080p corre a 12× o tempo real quando a GPU está livre; como a GPU é partilhada entre vários servidores, a margem real depende também da carga destes. Para uso familiar (alguns fluxos simultâneos), é mais do que suficiente.

É preciso um IPv4? O servidor tem um IPv6 dedicado incluído. Para acesso a partir de redes sem IPv6, a opção IPv4 dedicado custa 5 € s/ IVA/mês.

Experimentar

Servidor Linux GPU com Intel UHD 770 na VM, drivers VAAPI, QuickSync e OpenCL já instalados. A partir de 14,99 € s/ IVA/mês, acesso root.