Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
HWA Tutorial voor NVIDIA GPU
Deze tutorial begeleidt je bij het instellen van volledige hardwareversnelling voor video op NVIDIA GPU's via NVENC.
Versnellingsmethoden
Hardwareversnelling voor transcoderen wordt ondersteund op NVIDIA GPU's sinds de Maxwell-architectuur.
Op Windows en Linux is NVENC de enige beschikbare methode.
NVENC/NVDEC zijn de eigen video-codec-API's van NVIDIA GPU's, die met CUDA kunnen worden gebruikt voor volledige hardwareversnelling.
Raadpleeg dit gedeelte voor bekende problemen en beperkingen.
NVENC ondersteunt headless-servers op zowel Windows als Linux, wat betekent dat een aangesloten monitor niet vereist is.
Tone-mappingmethoden
Hardwareversnelde HDR/DV naar SDR tone-mapping wordt ondersteund op alle NVIDIA GPU's met HEVC 10-bit decodering.
Op Windows en Linux is CUDA de enige beschikbare tone-mapping methode. Deze ondersteunt ook Dolby Vision P5 en zero-copy.
De functie Enable enhanced NVDEC decoder schakelt tussen het nieuwere NVDEC- en het oudere CUVID-decodeerproces. Dolby Vision-ondersteuning vereist dat deze optie is aangevinkt om NVDEC in te schakelen.
::>
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 NVIDIA GPU's ondersteunen NVENC/NVDEC, maar sommige budget- en mobiele modellen (bijv. GT1030 en MX450) zijn uitzonderingen.
Controleer de video-codec-ondersteuning via de NVIDIA GPU Codec-ondersteuningsmatrix 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 NVIDIA GPU's met NVENC/NVDEC-ondersteuning kunnen deze decoderen en/of encoderen.
- Decoderen & Encoderen H.264 8-bit - Elke NVIDIA GPU met NVENC/NVDEC-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.
Maxwell+ GPU's bieden ondersteuning voor HEVC:
-
Decoderen & Encoderen HEVC 8-bit - Maxwell 2e generatie (GM206) en nieuwer
-
Decoderen HEVC 10-bit - Maxwell 2e generatie (GM206) en nieuwer
-
Encoderen HEVC 10-bit - Pascal en nieuwer
Let op: in de Maxwell 2e generatie-serie bieden alleen de GM206-varianten ondersteuning voor HEVC 10-bit decodering. De opvolger Pascal heeft volledige ondersteuning voor HEVC 10-bit en verbeterde snelheid en kwaliteit.
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.
NVIDIA heeft ondersteuning voor AV1-versnelling toegevoegd in hun nieuwste GPU's:
-
Decoderen AV1 8/10-bit - Ampere en nieuwer
-
Encoderen AV1 8/10-bit - Ada Lovelace en nieuwer
Andere codecs transcoderen
Raadpleeg deze links:
Snelheid en kwaliteit
Encoderingskwaliteit:
-
H.264 & HEVC - Blackwell/Ada/Ampere/Turing > Turing TU117/Volta/Pascal > Maxwell
-
AV1 - Alleen Ada Lovelace en Blackwell
Decoderings- & encoderingssnelheid binnen dezelfde generatie:
-
Modellen met meerdere NVENC/NVDEC-eenheden > Modellen met één NVENC/NVDEC-eenheid
-
Modellen met hoge GPU-kloksnelheid > Modellen met lage GPU-kloksnelheid
-
Modellen met hoge geheugenbandbreedte > Modellen met lage geheugenbandbreedte
NVENC/NVDEC-prestatietabellen:
Windows-instellingen
Windows 10 64-bit of nieuwer wordt aanbevolen. In Jellyfin 10.10 is de minimaal vereiste NVIDIA-driverversie 522.25.
Configureren op Windows-host
-
Verwijder oud stuurprogramma met DDU als je upgrade vanaf een pre-Maxwell NVIDIA-GPU zonder schone installatie.
-
Installeer nieuwste stuurprogramma via NVIDIA Driver Downloads via schone installatie.
-
Schakel NVENC in Jellyfin in en vink niet-ondersteunde codecs uit.
Configureren met Windows-virtualisatie
NVIDIA Windows-stuurprogramma biedt toegang tot NVENC/NVDEC en CUDA in Windows WSL2 en Docker.
Raadpleeg Configureren op Linux Host en Configureren met Linux-virtualisatie.
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:
- 3D - 2D/3D-engine of CUDA/GPGPU-belasting
- Copy - Blitter/Copy-engine-belasting
- Video Decode - Video-decodeerbelasting
- Video Encode - Video-encoderingsbelasting
- Cuda - CUDA/GPGPU-belasting

Linux-installaties
64-bits Linux-distributie vereist. Voor Jellyfin 10.10 is minimaal NVIDIA-stuurprogrammaversie 520.56.06 vereist.
Configureren op Linux-host
Debian en Ubuntu Linux
Het jellyfin-ffmpeg* deb-pakket bevat geen NVIDIA-propriëtaire stuurprogramma's.
Installeer NVIDIA-stuurprogramma via distributie en configureer jellyfin-gebruikersrechten.
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 -
Installeer de propriëtaire NVIDIA-driver via deze links. Installeer daarna twee extra pakketten voor NVENC- en NVDEC-ondersteuning:
- Op Debian: https://wiki.debian.org/NvidiaGraphicsDrivers
sudo apt update && sudo apt install -y libnvcuvid1 libnvidia-encode1 - Op Ubuntu: https://ubuntu.com/server/docs/nvidia-drivers-installation
opmerking
Mogelijk moet je de driverversie als achtervoegsel aan de pakketnaam toevoegen.
sudo apt update && sudo apt install -y libnvidia-decode libnvidia-encode
- Op Debian: https://wiki.debian.org/NvidiaGraphicsDrivers
-
Controleer de NVIDIA GPU-status met
nvidia-smi:$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.56.06 Driver Version: 520.56.06 CUDA Version: 11.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:1C:00.0 Off | N/A |
| 0% 44C P0 N/A / 75W | 0MiB / 1998MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
... -
Schakel NVENC in Jellyfin in en vink niet-ondersteunde codecs uit.
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 dat u de juiste codenaam kiest via de officiële versiekaarten.
Arch Linux
Rootrechten zijn vereist.
-
Installeer het Archlinux/extra
jellyfin-ffmpeg-pakket:sudo pacman -Syu jellyfin-ffmpeg -
Installeer de propriëtaire NVIDIA-driver via deze link. Installeer daarna een extra pakket voor NVENC- en NVDEC-ondersteuning:
sudo pacman -Syu nvidia-utils -
Controleer de NVIDIA GPU-status met
nvidia-smi:nvidia-smi -
Schakel NVENC in Jellyfin in en vink niet-ondersteunde codecs uit.
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 de propriëtaire stuurprogrammapakketten van NVIDIA en hun afhankelijkheden die deze sleutelwoorden bevatten:
-
NVIDIA NVDEC CUVID - DECODEREN
-
NVIDIA NVENC - ENCODEREN
Configureren met Linux-virtualisatie
Officiële Docker
Het officiële Docker-image bevat geen propriëtair NVIDIA-stuurprogramma.
Installeer het NVIDIA-stuurprogramma en de NVIDIA Container Toolkit op het hostsysteem om Docker toegang te geven tot je GPU.
Rootrechten zijn vereist.
-
Installeer het propriëtaire NVIDIA-stuurprogramma op het hostsysteem (zie bovenstaande instructies).
-
Installeer de NVIDIA Container Toolkit op het hostsysteem via deze link:
-
Gebruik de Docker-opdrachtregel of docker-compose:
- Voorbeeld-opdrachtregel:
docker run -d \
--name=jellyfin \
--volume /path/to/config:/config \
--volume /path/to/cache:/cache \
--volume /path/to/media:/media \
--user 1000:1000 \
--net=host \
--restart=unless-stopped \
--runtime=nvidia \
--gpus all \
jellyfin/jellyfin - Voorbeeld docker-compose-configuratiebestand in YAML:
services:
jellyfin:
image: jellyfin/jellyfin
user: 1000:1000
network_mode: 'host'
volumes:
- /path/to/config:/config
- /path/to/cache:/cache
- /path/to/media:/media
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
opmerkingAls je het upstream-probleem
CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detectedtegenkomt, voeg deze extra devices toe aan Docker:/dev/nvidia-caps:/dev/nvidia-caps
/dev/nvidia0:/dev/nvidia0
/dev/nvidiactl:/dev/nvidiactl
/dev/nvidia-modeset:/dev/nvidia-modeset
/dev/nvidia-uvm:/dev/nvidia-uvm
/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools - Voorbeeld-opdrachtregel:
-
Voeg je gebruikersnaam toe aan de videogroep:
sudo usermod -aG video $USER -
Werk dynamische links bij en herstart de Docker-service:
docker exec -it jellyfin ldconfig
sudo systemctl restart docker -
Controleer de status van de NVIDIA GPU met
nvidia-smi:docker exec -it jellyfin nvidia-smi -
Voor experimentele builds: verander
jellyfin/jellyfininjellyfin/jellyfin:unstable(op eigen risico). -
Schakel NVENC in Jellyfin in en vink niet-ondersteunde codecs uit.
Het officiële Jellyfin Docker-image configureert automatisch de vereiste omgevingsvariabelen voor NVIDIA GPU's. Bij eigen images voeg je deze variabelen toe:
-
NVIDIA_DRIVER_CAPABILITIES=all -
NVIDIA_VISIBLE_DEVICES=all
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.
Podman
-
Voeg de CUDA-repo toe aan je pakketbeheerder.
Blader in de volgende map om het juiste repositorybestand voor jouw distributie te vinden: CUDA-repo's
Installeer het juiste repositorybestand in je pakketbeheerder. De manier om dit te doen hangt af van je pakketbeheerder en OS-release. Vervang de repo-URL in de onderstaande voorbeelden door die welke geschikt is voor jouw distributie.
a. Fedora, RHEL, CentOS:
sudo dnf config-manager addrepo --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/fedora42/$(uname -m)/cuda-fedora42.repob. Debian, Ubuntu:
echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin stable main" | sudo tee /etc/apt/sources.list.d/cuda-ubuntu2404.listsudo apt-get update -
Installeer de pakketten
cuda-toolkitennvidia-container-toolkit-basea. Fedora, RHEL, CentOS:
sudo dnf install cuda-toolkit nvidia-container-toolkit-baseb. Debian, Ubuntu:
sudo apt-get install -y cuda-toolkit nvidia-container-toolkit-base -
Genereer een CDI-specificatiebestand.
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yamlZie: Support for Container Device Interface — NVIDIA Container Toolkit
-
Pas je podman-opdrachtregel of systemd-containerbestand aan om het apparaat te gebruiken:
nvidia.com/gpu=0Bijvoorbeeld, je podman-opdrachtregel zou er nu zo uit moeten zien:
podman run \
--detach \
--label "io.containers.autoupdate=registry" \
--name myjellyfin \
--publish 8096:8096/tcp \
--device nvidia.com/gpu=0 \
# --security-opt label=disable # Only needed for older versions of container-selinux < 2.226
--rm \
--user $(id -u):$(id -g) \
--userns keep-id \
--environment=JELLYFIN_DATA_DIR=/var/lib/jellyfin
--environment=JELLYFIN_CONFIG_DIR=/etc/jellyfin
--environment=JELLYFIN_LOG_DIR=/var/log/jellyfin
--environment=JELLYFIN_CACHE_DIR=/var/cache/jellyfin
--volume=/your/path/to/data:/var/lib/jellyfin # Replace paths with actual paths on your host's filesystem
--volume=/your/path/to/config:/etc/jellyfin
--volume=/your/path/to/logs:/var/log/jellyfin
--volume=/your/path/to/cache:/var/cache/jellyfin
--mount type=bind,source=/path/to/media,destination=/media,ro=true,relabel=private \
docker.io/jellyfin/jellyfin:latestSystemd:
[Unit]
Description=jellyfin
[Container]
Image=docker.io/jellyfin/jellyfin:latest
AutoUpdate=registry
PublishPort=8096:8096/tcp
UserNS=keep-id
#SecurityLabelDisable=true # Only needed for older versions of container-selinux < 2.226
AddDevice=nvidia.com/gpu=0
Environment=JELLYFIN_DATA_DIR=/var/lib/jellyfin
Environment=JELLYFIN_CONFIG_DIR=/etc/jellyfin
Environment=JELLYFIN_LOG_DIR=/var/log/jellyfin
Environment=JELLYFIN_CACHE_DIR=/var/cache/jellyfin
Volume=/your/path/to/data:/var/lib/jellyfin # Replace paths with actual paths on your host's filesystem
Volume=/your/path/to/config:/etc/jellyfin
Volume=/your/path/to/logs:/var/log/jellyfin
Volume=/your/path/to/cache:/var/cache/jellyfin
[Service]
# Inform systemd of additional exit status
SuccessExitStatus=0 143
[Install]
# Start by default on boot
WantedBy=default.target -
Maak de volgende udev-regel aan om ervoor te zorgen dat de GPU-apparaten worden geïnitialiseerd voordat de container start.
Sla het volgende bestand op als
/etc/udev/rules.d/nvidia.rules:ACTION=="add|bind", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", \
DRIVER=="nvidia", TEST!="/dev/nvidia-uvm", \
RUN+="/usr/bin/nvidia-modprobe", \
RUN+="/usr/bin/nvidia-modprobe -c0 -u", \
RUN+="/usr/bin/nvidia-modprobe -m"
Andere virtualisaties
Andere virtualisaties zijn niet geverifieerd en werken mogelijk wel of niet met NVIDIA GPU.
Zie de HWA-handleiding voor Intel GPU - Configureren met Linux-virtualisatie voor meer informatie.
Verificatie op Linux
-
Speel een video af in de Jellyfin-webclient en activeer transcodering door een lagere resolutie of bitrate in te stellen.
-
Gebruik het
nvidia-smi-commando om het gebruik van de NVIDIA GPU en het VRAM-gebruik van elk jellyfin-ffmpeg-proces te controleren:$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.56.06 Driver Version: 520.56.06 CUDA Version: 11.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:1C:00.0 Off | N/A |
| 43% 44C P2 36W / 75W | 274MiB / 1998MiB | 68% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 4024 G /usr/lib/xorg/Xorg 63MiB |
| 0 N/A N/A 5837 C /usr/lib/jellyfin-ffmpeg/ffmpeg 195MiB |
+-----------------------------------------------------------------------------+