Blog

AV1 in Jellyfin op een Intel UHD 770: decodering en transcodering

AV1 gemeten met de ffmpeg van Jellyfin op een Intel UHD 770: 4K 10-bit hardwaredecodering op 13,5x realtime, HDR10 naar SDR op 4,6x, 5 gelijktijdige 4K-streams.

AV1 in Jellyfin op een Intel UHD 770: decodeer- en transcodeersnelheid gemeten

AV1-bestanden worden steeds gangbaarder, en veel Jellyfin-servers draaien nog op een geïntegreerde Intel-GPU. De vraag is eenvoudig: kan een Intel UHD 770 AV1 aan voor Jellyfin, en voor hoeveel streams? We hebben het gemeten met jellyfin-ffmpeg, de ffmpeg-build die Jellyfin zelf meelevert.

De resultaten in het kort

  • AV1-decodering gebeurt op de GPU: een 4K 10-bit AV1-bestand wordt gedecodeerd op 13,5x realtime en gebruikt daarbij ongeveer 13% van één CPU-kern.
  • 4K AV1 HDR naar 1080p H.264 met HDR→SDR-tone mapping: 4,6x realtime voor één stream.
  • 5 gelijktijdige 4K HDR→1080p SDR-transcoderingen blijven realtime.
  • AV1-codering gebeurt op de CPU (bijvoorbeeld met SVT-AV1), niet op deze GPU. Voor Jellyfin maakt dat zelden uit: apparaten die geen AV1 kunnen afspelen krijgen H.264 of HEVC, en dat codeert de GPU.

Testopstelling

OnderdeelWaarde
CPU / GPUIntel Core i5-13500, geïntegreerde Intel UHD 770 (gedeelde GPU)
Virtuele machineLinux (Debian 13), 4 vCPU, 8 GB RAM, kernel 7.3
ffmpegjellyfin-ffmpeg 7.1.4 uit de officiële Jellyfin-repository
MediadriverIntel iHD 25.4.6 (decodering VAProfileAV1Profile0 ondersteund)
Bronnen30 s, 24 fps, gecodeerd met SVT-AV1 met toegevoegde filmkorrel: 4K 10-bit gemarkeerd als HDR10 (PQ / BT.2020, ongeveer 39 Mbit/s) en 1080p 8-bit

De clips zijn synthetisch, dus echte films kunnen zich iets anders gedragen. Elk getal is de speed=-waarde van ffmpeg: 1x betekent realtime, 10x tien keer sneller dan afspelen.

1. AV1-decodering: GPU tegenover CPU

4K 10-bit AV1, alleen decoderenSnelheidCPU-gebruik
Hardwaredecodering (VA-API)13,5x (324 fps)13% van één kern
Softwaredecodering (dav1d, 4 vCPU)4,0x (97 fps)227%

Hardwaredecodering is meer dan drie keer zo snel en laat de CPU vrijwel onbelast. Precies wat je wilt als Jellyfin, een database en andere diensten dezelfde machine delen.

/usr/lib/jellyfin-ffmpeg/ffmpeg -vaapi_device /dev/dri/renderD128 \
  -hwaccel vaapi -hwaccel_output_format vaapi -i film-av1.mkv -f null -

2. AV1 transcoderen voor apparaten die het niet kunnen afspelen

Dit is de gebruikelijke situatie in Jellyfin: een tv, een oudere telefoon of een browser speelt geen AV1 af, dus zet Jellyfin het on the fly om. We gebruikten dezelfde Quick Sync-pipeline als Jellyfin (decodering via VA-API, schalen en coderen via QSV).

TranscoderingSnelheidCPU-gebruik
4K AV1 10-bit → 1080p H.264, volledig op de GPU10,3x29% van één kern
4K AV1 HDR10 → 1080p H.264 SDR met tone mapping (vpp_qsv)4,6x—
1080p AV1 → 720p H.2649,2x19% van één kern
1080p AV1 → 1080p HEVC8,5x18% van één kern
4K AV1 gedecodeerd op de CPU, H.264 gecodeerd op de GPU (ter vergelijking)3,8x271%

Tone mapping (HDR10 omzetten naar SDR voor een scherm zonder HDR) kost het meest: het halveert de snelheid ongeveer. We hebben de kleurlabels van de uitvoer (BT.709) gecontroleerd om zeker te weten dat het echt werd toegepast.

/usr/lib/jellyfin-ffmpeg/ffmpeg \
  -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device qsv=qs@va -filter_hw_device qs \
  -hwaccel vaapi -hwaccel_output_format vaapi -i film-av1-hdr10.mkv \
  -vf 'hwmap=derive_device=qsv,format=qsv,vpp_qsv=w=1920:h=1080:format=nv12:tonemap=1' \
  -c:v h264_qsv -preset veryfast -b:v 8M -c:a copy uitvoer.mkv

3. Hoeveel streams tegelijk?

Meerdere transcoderingen 4K AV1 HDR10 → 1080p H.264 SDR (met tone mapping) die tegelijk draaien; de tabel toont telkens de traagste stream:

Gelijktijdige streamsTraagste streamRealtime?
14,6xja
41,37xja
51,10xja
60,92xnet eronder
80,69xnee

Vijf 4K HDR-films tegelijk, elk omgezet naar 1080p SDR: een ruime grens voor een huishouden of een kleine groep. Zonder tone mapping (SDR- of 1080p-bronnen) kan de GPU er veel meer aan.

4. En AV1-codering?

Wil je dat Jellyfin AV1 maakt (bijvoorbeeld om bandbreedte te besparen bij streaming naar een apparaat dat AV1 ondersteunt), dan gebeurt het coderen op de CPU met SVT-AV1. Zo zijn ook onze testbestanden gemaakt. In de praktijk heeft Jellyfin het zelden nodig: het speelt AV1 direct af op apparaten die het ondersteunen (direct play) en stuurt de andere H.264 of HEVC, allebei gecodeerd op de GPU.

Wat dit betekent voor een Jellyfin-server

  • AV1-bibliotheken zijn geen probleem op een Intel UHD 770: de decodering is hardwareversneld en de CPU blijft vrij.
  • Reken op ongeveer 5 gelijktijdige 4K HDR→SDR-transcoderingen, veel meer bij 1080p.
  • Zet tone mapping alleen aan als het nodig is (schermen zonder HDR): het is de duurste stap.

Zie ook: hardwaretranscodering met Jellyfin en Plex, ffmpeg-commando’s voor Quick Sync die werken en onze belastingtest van de gedeelde GPU.

Probeer het

Al onze iGPU-abonnementen bevatten een Intel UHD 770 met VA-API en Quick Sync, klaar voor gebruik: Jellyfin is in een paar minuten geïnstalleerd en vindt de GPU op /dev/dri/renderD128. Bekijk de abonnementen, vanaf € 14,99 per maand.