Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
Zelfstudie hardwareversnelling voor AMD GPU
Deze zelfstudie begeleidt je bij het instellen van volledige hardwareversnelling voor video op AMD's geïntegreerde GPU en discrete GPU via AMF of VA-API. Gebruik VideoToolbox als je macOS gebruikt.
Versnellingsmethoden
Hardwareversnelling voor transcoderen wordt ondersteund op AMD GPU's sinds de GCN-architectuur.
Op Windows is AMF de enige beschikbare methode.
Op Linux zijn er twee methoden:
-
VA-API - Aanbevolen voor alle GPU's, volledige versnelling op Polaris(RX400/500)+ GPU's, open source.
-
AMF - Niet aanbevolen, beperkte ondersteuning, alleen hardwarematige encoder, closed source.
De AMF-interface op Windows is gebaseerd op DXVA/D3D11VA, maar op Linux is deze gebaseerd op hun Pro Vulkan- en OpenCL-stack, een closed source-oplossing. We bieden alleen volledige hardwareversnelling hiervoor op Windows.
De VA-API-interface op Linux is een open source-implementatie. Deze open driverstack omarmt Intel's Libva-standaard en geeft hun videohardware bloot via de Mesa Gallium RadeonSI-driver. Dankzij de ontwikkelaars van RADV Vulkan-driver kunnen we samenwerken tussen VA-API en Vulkan op Polaris+ GPU's, waardoor we Vulkan-berekeningen kunnen gebruiken voor volledige hardwareversnelling op Linux.
-
In tegenstelling tot NVIDIA NVENC geldt er geen limiet voor gelijktijdige encodesessies op AMD GPU.
-
AMF en VA-API ondersteunen headless-servers op zowel Windows als Linux, wat betekent dat een aangesloten monitor niet vereist is.
Tone-mappingmethoden
Hardwareversnelling voor HDR/DV naar SDR tone-mapping wordt ondersteund op alle AMD GPU's die HEVC 10-bit decodering hebben.
Er zijn twee verschillende methoden die op Windows en/of Linux kunnen worden gebruikt. Voor- en nadelen worden hieronder vermeld:
-
OpenCL
-
Voordelen - Ondersteunt Dolby Vision P5, gedetailleerde afstelmogelijkheden, breed ondersteunde hardware.
-
Nadelen - Zero-copy wordt niet ondersteund op Linux.
-
-
Vulkan
-
Voordelen - Ondersteunt Dolby Vision P5, libplacebo-renderer, vereist geen ROCm OpenCL-runtime.
-
Nadelen - Alleen Linux, zero-copy ondersteunt alleen Polaris+ GPU's.
-
GPU-hardware selecteren
Voor beginners: raadpleeg de Hardware Selectiehandleiding voor tips over het selecteren van hardware. Voor gevorderde gebruikers: lees verder in deze sectie.
De meeste AMD dGPU's hebben video-encoders, maar let op bij bepaalde modellen - RX 6400/6500 series hebben geen video-encoders.
AMD Ryzen APU's (modellen met G/GE/H/HS/HX suffix) en Zen 4-processors hebben geïntegreerde grafische mogelijkheden.
Controleer altijd de videocodec-ondersteuning via de AMD-productspecificaties voordat je een GPU voor hardwareversnelling aanschaft.
H.264 transcoderen
AVC / H.264 8-bit wordt nog steeds veel gebruikt vanwege de uitstekende compatibiliteit. Alle AMD GPU's die AMF of VA-API ondersteunen, kunnen dit decoderen en encoderen.
- Decoderen & encoderen H.264 8-bit - Elke AMD GPU met AMF of VA-API-ondersteuning
HEVC transcoderen
HEVC / H.265 blijft de eerste keuze voor het opslaan van 4K 10-bit, HDR- en Dolby Vision-video. Het heeft volwassen software-encodingondersteuning dankzij x265, evenals breed geïmplementeerde hardware-encodingondersteuning in de meeste GPU's uitgebracht na 2016.
De HEVC-ondersteuning op AMD is complex:
-
Decoderen HEVC 8-bit - Radeon R9 Fury en nieuwer (Fiji)
-
Encoderen HEVC 8-bit - Radeon RX 400-serie (Polaris) en nieuwer
-
Decoderen HEVC 10-bit - Radeon RX 400-serie (Polaris) en nieuwer
-
Encoderen HEVC 10-bit - Ryzen 4000-serie APU (Renoir), Radeon RX 5000-serie (Navi 1x) en nieuwer
AV1 transcoderen
AV1 is een royaltyvrije, toekomstbestendige videocodec. Het bespaart veel opslagruimte en netwerkbandbreedte dankzij kleinere bestandsgrootte. Het nadeel is dat decoderen en encoderen zeer zwaar zijn voor de CPU. Hardwareversnelling maakt het mogelijk om AV1-streams on-the-fly te transcoderen. AV1-encoding wordt ondersteund in Jellyfin 10.9 en nieuwer.
AMD heeft ondersteuning voor AV1-versnelling toegevoegd in hun nieuwste GPU's:
-
Decoderen AV1 8/10-bit - Radeon RX 6000-serie (Navi 2x), Ryzen 6000 mobiele APU en nieuwer (behalve RX 6400/6500)
-
Encoderen AV1 8/10-bit - Radeon RX 7000-serie (Navi 3x), Ryzen 7000/8000, AI 7/9 HX mobiele APU, Ryzen 8000G desktop APU en nieuwer
Andere codecs transcoderen
Raadpleeg deze links:
Snelheid en kwaliteit
Door het ontbreken van B-frame-ondersteuning is de encodingkwaliteit van de AMD H.264-hardwareencoder teleurstellend. Hoewel RX 6000/VCN3.0 B-frame-ondersteuning terugbrengt, is de kwaliteitsverbetering beperkt.
De AMD HEVC-encoder is veel beter dan de H.264-encoder, en de nieuwe AMD AV1-encodingondersteuning op RX 7000/VCN4.0 lijkt de redding voor AMD's encodingkwaliteit. Toch zijn ze momenteel geen partij voor Intel QSV en NVIDIA NVENC. VCN4.0 verbeterde bovendien de encodingsnelheid aanzienlijk. De encodingkwaliteit is sterk verbeterd in VCN5.0, en het lost ook het probleem op in VCN4.0 waarbij de AV1-encoder een hoogte van 64 vereiste (1080p werd incorrect geëncodeerd als 1082p met zwarte pixels).
Encodingsnelheid en -kwaliteit:
- VCN5(RX 9000) >> VCN4(RX 7000) > VCN3/VCN2(RX 6000/RX 5000/Renoir) > VCN1/VCE(Raven/Picasso/GCN GPU's)
Windows-instellingen
Windows 10 64-bit en nieuwer wordt aanbevolen. AMF is niet beschikbaar in Windows Docker en WSL/WSL2.
Bekende problemen en beperkingen op Windows
Raadpleeg dit gedeelte voor bekende problemen en beperkingen.
Configureren op Windows-host
-
Verwijder oude stuurprogramma's met DDU als je een upgrade hebt uitgevoerd vanaf een pre-GCN AMD GPU zonder schone installatie.
-
Installeer de nieuwste stuurprogramma's schoon vanaf AMD Drivers and Support.
-
Sta niet toe dat de GPU wordt overgenomen door de Windows Remote Desktop-sessie.
-
Typ
gpedit.mscin het dialoogvenster van de sneltoets Win+R en voer uit om de "Local Group Policy Editor" te openen. -
Navigeer in de linkerbomenstructuur naar [Computerconfiguratie > Beheersjablonen > Windows-onderdelen]
-
Hier vind je [Extern bureaublad-services > Host voor extern bureaublad-sessies > Omgeving voor externe sessies]
-
Dubbelklik aan de rechterkant op [Gebruik hardware-grafische adapters voor alle sessies van Extern bureaublad-services]
-
Stel [Uitgeschakeld] in het pop-upvenster in en klik op [OK], herstart het systeem.

-
-
Schakel AMF in Jellyfin in en vink niet-ondersteunde codecs uit.
Verifiëren op Windows
-
Speel een video af in de Jellyfin-webclient en activeer transcodering door een lagere resolutie of bitrate in te stellen.
-
Open "Taakbeheer" en navigeer naar het GPU-tabblad.
-
Controleer het gebruik van de engines als volgt.
opmerkingDubbele engine-namen geven aan dat de GPU mogelijk meerdere video-engines heeft.
-
3D - 2D/3D-engine of GPGPU-workload
-
Copy - Blitter/Copy-engine-workload
-
Video Codec - Video-decoder of encoder-workload
-
Video Decode - Video-decoder-workload
-
Video Encode - Video-encoder-workload
-
Compute - GPGPU-workload

-
Linux-installaties
Een 64-bit Linux-distributie is vereist. Ondersteunde GPU's variëren per kernel- en firmwareversies.
Bekende problemen en beperkingen op Linux
Raadpleeg deze sectie voor bekende problemen en beperkingen.
Configureren op Linux-host
Debian en Ubuntu Linux
Het voor Jellyfin vereiste jellyfin-ffmpeg* deb-pakket bevat alle benodigde Mesa-stuurprogramma's in gebruikersmodus.
Daarnaast hoeft u alleen de rechten van de jellyfin-gebruiker te configureren.
Rootrechten zijn vereist.
-
Ga ervan uit dat u de Jellyfin-repository aan uw apt-bronnenlijst hebt toegevoegd en
jellyfin-serverenjellyfin-webhebt geïnstalleerd. -
Installeer het
jellyfin-ffmpeg7-pakket. Verwijder het verouderdejellyfin-metapakket als dit afhankelijkheden verstoort:sudo apt update && sudo apt install -y jellyfin-ffmpeg7 -
Zorg dat minstens één
renderD*-apparaat bestaat in/dev/dri. Upgrade anders uw kernel of schakel de iGPU in de BIOS in. Let op de rechten en groep met schrijftoegang, in dit gevalrenderenvideo:$ ls -l /dev/dri
total 0
drwxr-xr-x 2 root root 120 Mar 5 05:15 by-path
crw-rw----+ 1 root video 226, 0 Mar 5 05:15 card0
crw-rw----+ 1 root video 226, 1 Mar 5 05:15 card1
crw-rw----+ 1 root render 226, 128 Mar 5 05:15 renderD128
crw-rw----+ 1 root render 226, 129 Mar 5 05:15 renderD129 -
Voeg de gebruiker
jellyfintoe aan derender- envideo-groep, en start daarna dejellyfin-service opnieuw:opmerkingBij sommige releases kan de groep
inputzijn.sudo usermod -aG render jellyfin
sudo usermod -aG video jellyfin
sudo systemctl restart jellyfin -
Controleer de ondersteunde VA-API-codecs:
opmerkingMesa Gallium drivergeeft aan dat de VA-API-interface wordt ondersteund.sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
Trying display: drm
vainfo: VA-API version: 1.17 (libva 2.17.0)
vainfo: Driver version: Mesa Gallium driver 23.1.0-devel for AMD Radeon RX Vega (vega10, LLVM 15.0.7, DRM 3.49, 6.1.14-1)
vainfo: Supported profile and entrypoints
...VAEntrypointVLDbetekent dat je kaart dit formaat kan decoderen,VAEntrypointEncSlicebetekent dat je naar dit formaat kunt encoderen.Jellyfin-instelling VA-API-profiel H264 VAProfileH264Baseline
VAProfileH264Main
VAProfileH264High
VAProfileH264ConstrainedBaselineHEVC VAProfileHEVCMain MPEG2 VAProfileMPEG2Simple
VAProfileMPEG2MainVC1 VAProfileVC1Simple
VAProfileVC1Main
VAProfileVC1AdvancedVP8 VAProfileVP8Version0
VAProfileVP8Version1
VAProfileVP8Version2
VAProfileVP8Version3VP9 VAProfileVP9Profile0 AV1 VAProfileAV1Profile0 HEVC 10bit VAProfileHEVCMain10 VP9 10bit VAProfileVP9Profile2 -
Controleer de status van de Vulkan-runtime:
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device drm=dr:/dev/dri/renderD128 -init_hw_device vulkan@dr
[AVHWDeviceContext @ 0x557f13a57bc0] GPU listing:
[AVHWDeviceContext @ 0x557f13a57bc0] 0: AMD Radeon RX Vega (RADV VEGA10) (discrete) (0x687f)
[AVHWDeviceContext @ 0x557f13a57bc0] 1: llvmpipe (LLVM 15.0.7, 256 bits) (software) (0x0)
[AVHWDeviceContext @ 0x557f13a57bc0] Device 0 selected: AMD Radeon RX Vega (RADV VEGA10) (discrete) (0x687f)
[AVHWDeviceContext @ 0x557f13a57bc0] Queue families:
[AVHWDeviceContext @ 0x557f13a57bc0] 0: graphics compute transfer sparse (queues: 1)
[AVHWDeviceContext @ 0x557f13a57bc0] 1: compute transfer sparse (queues: 4)
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_KHR_synchronization2
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_KHR_external_memory_fd
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_EXT_external_memory_dma_buf
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_EXT_image_drm_format_modifier
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_KHR_external_semaphore_fd
[AVHWDeviceContext @ 0x557f13a57bc0] Using device extension VK_EXT_external_memory_host
... -
Als je de tweede GPU wilt gebruiken, wijzig dan
renderD128inrenderD129in het Jellyfin-dashboard. -
Schakel VA-API in Jellyfin in en vink de niet-ondersteunde codecs uit op basis van de vainfo-uitvoer.
Linux Mint
Linux Mint gebruikt Ubuntu als pakketbasis.
Volg de configuratiestappen voor Debian en Ubuntu Linux, maar installeer alle Jellyfin-pakketten jellyfin-server, jellyfin-web en jellyfin-ffmpeg7 handmatig vanaf de Jellyfin Server Releases-pagina. Zorg er ook voor dat je de juiste codenaam kiest volgens de officiële versiemappingen.
Arch Linux
Rootrechten zijn vereist.
-
Installeer het Archlinux/extra
jellyfin-ffmpeg-pakket:sudo pacman -Syu jellyfin-ffmpeg -
Mesa stuurprogramma's in gebruikersmodus moeten handmatig worden geïnstalleerd voor VA-API en RADV Vulkan:
sudo pacman -Syu libva-mesa-driver vulkan-radeon -
Controleer de VA-API-codecs:
sudo pacman -Syu libva-utils
sudo vainfo --display drm --device /dev/dri/renderD128 -
Controleer de status van de Vulkan-runtime:
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device drm=dr:/dev/dri/renderD128 -init_hw_device vulkan@dr -
Ga naar de resterende delen van Debian en Ubuntu Linux.
Andere Distro's
We bieden draagbare jellyfin-ffmpeg-binaries voor distro's zonder vaste onderhouder.
Download ze via een van deze links:
Minimale vereisten voor glibc en Linux-versies:
- x86_64 / amd64 - glibc ≥ 2.28, Linux ≥ 4.18 (meeste distro's uit 2018 en later)
Pak uit en installeer op het juiste pad, wijzig het FFmpeg-pad in het Jellyfin-dashboard:
Rootrechten zijn vereist.
cd ~/
mkdir -p jellyfin-ffmpeg
wget https://repo.jellyfin.org/releases/ffmpeg/<VERSION>/jellyfin-ffmpeg_<VERSION>_portable_linux64-gpl.tar.xz
tar -xvf jellyfin-ffmpeg_<VERSION>_portable_linux64-gpl.tar.xz -C jellyfin-ffmpeg
sudo mv jellyfin-ffmpeg /usr/lib
sudo ldd -v /usr/lib/jellyfin-ffmpeg/ffmpeg
Installeer andere benodigde Mesa-driverpakketten en hun afhankelijkheden met deze sleutelwoorden:
-
Mesa libva vaapi driver - RadeonSI
-
Mesa vulkan driver - RADV
Configureren met Linux-virtualisatie
Officiële Docker
Het officiële Docker-image bevat alle benodigde Mesa-drivers in gebruikersmodus.
Je hoeft alleen de render-groep-ID van de host aan Docker door te geven en configuraties aan te passen.
Rootrechten zijn vereist.
-
Vraag de ID's van de
render- envideo-groepen op het hostsysteem op en gebruik deze in de Docker CLI of docker-compose-bestand:opmerkingBij sommige releases heet de groep
input.getent group render | cut -d: -f3
getent group video | cut -d: -f3 -
Gebruik Docker command line of docker compose:
-
Voorbeeld command line:
docker run -d \
--name=jellyfin \
--volume /path/to/config:/config \
--volume /path/to/cache:/cache \
--volume /path/to/media:/media \
--user 1000:1000 \
--group-add="122" \ # Change this to match your "render" host group id and remove this comment
--net=host \
--restart=unless-stopped \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
jellyfin/jellyfin -
Voorbeeld docker-compose configuratiebestand in YAML:
services:
jellyfin:
image: jellyfin/jellyfin
user: 1000:1000
group_add:
- '122' # Change this to match your "render" host group id and remove this comment
network_mode: 'host'
volumes:
- /path/to/config:/config
- /path/to/cache:/cache
- /path/to/media:/media
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
-
-
Als u de tweede GPU op uw systeem wilt gebruiken, wijzig dan
renderD128inrenderD129. -
Om de onstabiele build te proberen, verander
jellyfin/jellyfininjellyfin/jellyfin:unstableop eigen risico. -
Controleer de VA-API-codecs:
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128 -
Controleer de Vulkan-runtimestatus:
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device vulkan -
Schakel VA-API in Jellyfin in en vink de niet-ondersteunde codecs uit.
Linuxserver.io Docker
LSIO Docker-images worden onderhouden door linuxserver.io, raadpleeg hun documentatie op GitHub - linuxserver/docker-jellyfin.
De paden van Jellyfin-configuratie- en gegevensmappen in de officiële en LSIO Docker-images zijn verschillend. Daarom kunnen ze niet eenvoudig worden uitgewisseld.
Andere virtualisaties
Andere virtualisatievormen zijn niet geverifieerd en werken mogelijk wel of niet met AMD GPU's.
Zie de HWA-handleiding voor Intel GPU - Configureren met Linux-virtualisatie voor meer informatie.
Verificatie op Linux
Er is geen betrouwbare manier om het gebruik van de VCE/UVD/VCN-engines op AMD GPU's onder Linux uit te lezen.
Je kunt dit echter nog steeds controleren door andere engines uit te lezen met het radeontop-hulpprogramma.
Rootrechten zijn vereist.
-
Installeer het
radeontoppakket. De naam verschilt per distributie.-
Op Debian & Ubuntu:
sudo apt update && sudo apt install -y radeontop -
Op Arch Linux:
sudo pacman -Syu radeontop
-
-
Speel een video af in de Jellyfin-webclient en activeer videotranscodering door een lagere resolutie of bitrate in te stellen.
-
Gebruik het
radeontop-commando om het gebruik van de 3D-engines te controleren.