Jellyfin Hardwarebeschleunigung
Hardwarebeschleunigung in LXC mit Jellyfin nutzen ohne dedizierte Grafikkarte
Wer keine dedizierte GPU für Jellyfin nutzen möchte, kann mit den LXC Containern von Proxmox die Host Grafikkarte verwenden. Das hat viele Vorteile, Intel-Grafikkarten sind die empfohlenen Grafikkarten von/für Jellyfin und bei den Minisforum PCs eine recht potente Grafikkarte mit an Board. Somit wird eine dedizierte Grafikkarte überflüssig.
Hardware¶
Minis Forum Mini-PC NAB6
Intel Core i7-12650H-Prozessor
Vorbereitung¶
Damit Proxmox und der LXC Container die Hardwarebeschleunigung nutzen können, müssen die Intel Treiber auf dem Proxmox Host installiert werden.
dgpu
Intel Repo auf dem Host hinzufügen
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
sudo apt updateBenötigte Pakete installieren
apt install -y \
intel-opencl-icd intel-level-zero-gpu level-zero \
intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfoNun lassen wir uns den Render auf dem Promxox Host auflisten.
ls - /dev/dri
# Ausgabe
drwxr-xr-x 2 root root 80 Dec 30 13:37 by-path
crw-rw---- 1 root video 226, 0 Dec 30 13:37 card0
crw-rw---- 1 root render 226, 128 Dec 30 13:37 renderD128Den Render “226” können wir nun an den LXC Container durchreichen.
LXC Container erstellen
Wir erstellen eine neuen LXC Container mit Ubuntu und installieren diesen durch. Nun wird die LXC Konfiguration angepasst und die Grafikkarte angegeben.
nano /etc/pve/lxc/112.conf
# Am Ende der Datei einfügen:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=fileJellyfin installieren¶
jellyfin
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bashEinstellungen und Codecs im LXC Container prüfen¶
Wenn alle Einstellungen durchgeführt wurden, prüfen wir mit den intel-gpu-tools ob die Grafikkarte richtig erkannt und genutzt wird. Anschließend lassen wir und die unterstützen Codecs für die Hardwarebeschleunigung anzeigen.
Grafikkarte Auslastung prüfen¶
Das Tool zeigt die Grafikkarte und die Auslastung beim Rendern an.
intel_gpu_topProxmox Host während des Rendern

Prüfen welche QSV / VA-API Codecs unterstützt werden¶
sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128Die ausgegeben Codecs sollten anschließend in Jellyfin hinterlegt werden.
OpenCL runtime prüfen¶
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@vaWichtig ist hierbei der Part “function found”, mit dieser Ausgabe ist OpenCL aktiv.
[AVHWDeviceContext @ 0x5623f7ba5ec0] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x5623f7ba5ec0] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x5623f7ba5ec0] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).Jellyfin Einstellungen anpassen¶
Unter: “Einstellungen -> Administration -> Übersicht -> Wiedergabe -> Intel QuickSync (QSV)” aktivieren.
Hardwarebeschleunigung Codecs Einstellen:

Hardwarekodierung, VPP-Tone-Mapping und Tone-Mapping aktiveren

Troubleshooting¶
Jellyfin könnte kein Mitglied der Render Gruppe sein
sudo usermod -aG render jellyfin
sudo systemctl restart jellyfinDie Render Gruppe ist nicht auf
/dev/drigesetzt
chown root:render /dev/driCPU Pinning: Falls nur die Performance Cores der CPU für den Container genutzt werden sollen kann man die CPU Cores festlegen.
# LXC Container Konfiguration anpassen
nano /etc/pve/lxc/112.conf
# In die Datei am Ende einfügen
lxc.cgroup2.cpuset.cpus: 0-5Quellen und Links¶
jellyfin
.org /docs /general /administration /hardware -acceleration /intel #configure -on -linux -host jellyfin
.org /docs /general /installation /linux #repository -automatic jocke
.no /2022 /02 /23 /plex -gpu -transcoding -in -docker -on -lxc -on -proxmox/ reddit
.com /r /Proxmox /comments /14fzj8l /tutorial _full _igpu _passthrough _for _jellyfin/