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
| Onderdeel | Waarde |
|---|---|
| CPU / GPU | Intel Core i5-13500, geïntegreerde Intel UHD 770 (gedeelde GPU) |
| Virtuele machine | Linux (Debian 13), 4 vCPU, 8 GB RAM, kernel 7.3 |
| ffmpeg | jellyfin-ffmpeg 7.1.4 uit de officiële Jellyfin-repository |
| Mediadriver | Intel iHD 25.4.6 (decodering VAProfileAV1Profile0 ondersteund) |
| Bronnen | 30 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 decoderen | Snelheid | CPU-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).
| Transcodering | Snelheid | CPU-gebruik |
|---|---|---|
| 4K AV1 10-bit → 1080p H.264, volledig op de GPU | 10,3x | 29% van één kern |
4K AV1 HDR10 → 1080p H.264 SDR met tone mapping (vpp_qsv) | 4,6x | — |
| 1080p AV1 → 720p H.264 | 9,2x | 19% van één kern |
| 1080p AV1 → 1080p HEVC | 8,5x | 18% van één kern |
| 4K AV1 gedecodeerd op de CPU, H.264 gecodeerd op de GPU (ter vergelijking) | 3,8x | 271% |
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 streams | Traagste stream | Realtime? |
|---|---|---|
| 1 | 4,6x | ja |
| 4 | 1,37x | ja |
| 5 | 1,10x | ja |
| 6 | 0,92x | net eronder |
| 8 | 0,69x | nee |
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.