Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
Hardwareversnelling
De Jellyfin-server kan realtime videotranscodering uitbesteden door gebruik te maken van een geïntegreerde of discrete grafische kaart (GPU) die geschikt is om deze taken zeer efficiënt te versnellen zonder je CPU zwaar te belasten.
Ondersteunde versnellingsmethoden
De Jellyfin-server gebruikt een aangepaste versie van FFmpeg als transcodeerprogramma, namelijk jellyfin-ffmpeg. Dit stelt de server in staat om toegang te krijgen tot de vaste-functie videocodecs, videoprocessors en GPGPU-rekeninterfaces die door de fabrikant van de geïnstalleerde GPU en het besturingssysteem worden aangeboden.
De ondersteunde en gevalideerde methoden voor hardwareversnelling (HWA) zijn:
-
Intel Quick Sync Video (QSV)
-
NVIDIA NVDEC/NVENC (NVENC)
-
AMD Advanced Media Framework (AMF)
-
Intel/AMD Video Acceleration API (VA-API, alleen Linux)
-
Apple Video Toolbox (alleen macOS)
-
Rockchip RKMPP (alleen Linux)
Volledige & gedeeltelijke versnelling
Het transcoderingstraject bestaat meestal uit meerdere fasen, die vereenvoudigd kunnen worden tot:
-
Videodecodering
-
Video-deinterlacing (optioneel)
-
Video-schaling & formaatconversie (optioneel)
-
Video HDR/DV-tone mapping (optioneel)
-
Inbranden van ondertiteling in video (optioneel)
-
Video-encodering
-
Zero-copy in bovenstaande fasen
Sommige van deze fasen kunnen niet door de GPU worden versneld vanwege software-, hardware- of driverbeperkingen.
Gedeeltelijke versnelling kan leiden tot hoger CPU-gebruik en lagere transcoderingssnelheid.
Jellyfin ondersteunt volledige versnelling voor:
-
Mainstream Intel- en Nvidia-GPU's op Windows en Linux
-
AMD Polaris en nieuwere GPU's op Linux via VA-API en Vulkan-interoperabiliteit
-
Oudere AMD-GPU's op Windows
-
Rockchip VPU van RK3588/3588S
-
Intel en Apple Silicon op macOS 12 en hoger
Het wordt sterk aanbevolen om jellyfin-ffmpeg met Jellyfin te gebruiken, dat een -Jellyfin-achtervoegsel in de versiestring heeft.
$ /usr/lib/jellyfin-ffmpeg/ffmpeg
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
...
Het gebruik van FFmpeg-binaire bestanden die elders zijn gedownload, resulteert in gedeeltelijke versnelling.
Jellyfin-ffmpeg wordt meestal meegeleverd in ons deb-pakket, officiële Docker-images en Windows-installatieprogramma's.
De enige uitzondering is bij gebruik van een draagbare installatie of een niet-ondersteunde distributie; dan moet je het handmatig downloaden en instellen in Jellyfin.
Hardwareversnelling configureren & verifiëren
Er moeten enkele voorbereidingen worden getroffen voordat hardwareversnelling kan worden ingeschakeld.
De specifieke configuratiestappen kunnen variëren afhankelijk van GPU-fabrikanten, installatiemethoden en besturingssystemen.
Op Linux kun je beschikbare GPU's controleren met het lspci-commando:
lspci -nn | grep -Ei "3d|display|vga"
Of met lshw:
lshw -C display
Raadpleeg de onderstaande tabel om de beste hardwareversnellingsmethode voor jouw hardware te kiezen:
| GPU Vendor | Windows | macOS | Linux |
|---|---|---|---|
| AMD | AMF (Windows) | VideoToolbox | VAAPI (AMD) |
| Apple | N/A | VideoToolbox | N/A |
| Intel | QSV (Windows) | VideoToolbox | QSV (Linux) |
| Nvidia | NVENC (Windows) | N/A | NVENC (Linux) |
| Rockchip | N/A | N/A | RKMPP |
Hardwareversnelling op afstand
Als je Jellyfin-server geen hardwareversnelling ondersteunt, maar je beschikt over een andere machine die dit wel kan, kun je rffmpeg gebruiken om het transcoderen naar een andere machine te delegeren.
Momenteel alleen beschikbaar voor Linux en vereist SSH-verbinding tussen de machines, plus gedeelde opslag voor media en de Jellyfin-datamap.
Hardwareversnelling voor Tonemapping
Jellyfin ondersteunt hardwareversnelde tonemapping van HDR10 en HLG naar SDR.
Dolby Vision (P5 & P8) naar SDR-tonemapping wordt ondersteund in Jellyfin 10.8 en vereist jellyfin-ffmpeg 5.0.1-5 of nieuwer.
- Intel VPP HDR10-tonemapping wordt ondersteund met Intel QSV en VA-API op Linux.
- VPP heeft de voorkeur als beide tonemapping-opties zijn ingeschakeld.
- Rockchip RKMPP ondersteunt Dolby Vision-tonemapping vanaf Jellyfin 10.11 en latere versies.
Tips voor Hardwareversnelling
-
Vermijd H.264/AVC 10-bit video's
tipHardwarematig decoderen van H.264/AVC 10-bit (High 10-profiel) wordt door geen enkele Intel-, NVIDIA- of AMD-GPU ondersteund. Dit werkt alleen op Apple Silicon en Rockchip. Jellyfin valt terug op softwarematig decoderen als er geen hardwarematige decoder beschikbaar is. Overweeg dergelijke video's te upgraden naar H.265/HEVC 10-bit (Main 10-profiel).
-
iGPU/APU: Kies bij voorkeur dual-channel geheugen
tipGeïntegreerde GPU's gebruiken een deel van het systeemgeheugen als videogeheugen. Dual-channel geheugen verdubbelt de videogeheugenbandbreedte, wat nuttig is bij intensieve taken zoals hardwarematige HDR/DV-tonemapping.
-
Gebruik SSD of RamDisk voor caching
tipOp moderne GPU's kan de piekdoorvoer van videotranscoding beperkt worden door de I/O-snelheid van je harde schijven. Een SSD of RamDisk kan dan gebruikt worden voor het cachen van tijdelijke getranscodeerde videosegmenten.
-
Pas encoder-presets aan voor kwaliteit/snelheid-afweging
tipHardware-encoderpresets beïnvloeden de encodesnelheid aanzienlijk. Verlaag deze preset in het Jellyfin-dashboard om kwaliteit in te ruilen voor snelheid, of verhoog de preset voor optimale kwaliteit bij een overgedimensioneerde GPU.
Afschaffing ondersteuning hardwareversnelling Raspberry Pi
Jellyfin ondersteunde eerder hardwareversnelling op Raspberry Pi via OpenMAX OMX in versie 10.8, met gedeeltelijke ondersteuning via V4L2 in 10.9. De ondersteuning bereikte echter nooit het volwassen niveau van andere versnellingsmethoden. Veel operaties vielen terug op de al onderpresterende CPU door gebrek aan volledige hardwareversnelling. Dit verslechterde met de Raspberry Pi 5, die helemaal geen hardware-encoders heeft, waardoor verdere ontwikkeling op dit platform onpraktisch is.
Daarom moeten we V4L2-ondersteuning voor Raspberry Pi helaas afschaffen. Hoewel het nu nog werkt, kunnen toekomstige Linux-kernel- of FFmpeg-updates de ondersteuning breken, en we zullen dergelijke problemen waarschijnlijk niet oplossen. Dit besluit kan worden teruggedraaid als toekomstige Raspberry Pi-modellen hardware-encoders opnieuw introduceren.