Verify / enable NVIDIA hardware transcoding for Jellyfin on Aegis #60
Labels
No labels
blocked
borg-backup
ceph
forgejo
in-progress
infra
netdata
nextcloud
p:high
p:low
p:medium
searxng
service-onboard
swarm-nodes
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
copper/ccnet-prod-devops#60
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
docs/homelab-architecture.mdnotes Jellyfin on Aegis hasNVIDIA_VISIBLE_DEVICES/NVIDIA_DRIVER_CAPABILITIESset in its env but no actual GPU passthrough was ever observed. User confirms there is an NVIDIA card in the system (Dell Precision Tower 5810).Tasks:
nvidia-smi).--runtime=nvidia(or composeruntime: nvidia/ device reservation) and the correct GPU UUID.(hw),nvidia-smishows the encode session).Resolved 2026-09-02 — NVENC hardware transcode is live
Diagnosis. The GPU was present and the host was fine all along — NVIDIA T400 4GB at
02:00.0, driver 595.84 / CUDA 13.2,nvidia-driverUnraid plugin installed, and the Docker daemon already had thenvidiaruntime registered. TheJellyfincontainer carriedNVIDIA_VISIBLE_DEVICES=all+NVIDIA_DRIVER_CAPABILITIES=compute,video,utility, but those come from the officialjellyfin/jellyfinimage itself and do nothing without the NVIDIA container runtime. The container was created withRuntime=runc, no--runtime=nvidia, so inside it:nvidia-smi— not foundffmpeg -init_hw_device cuda→Cannot load libcuda.so.1/Operation not permittedh264_nvencencode → same/dev/dri(and this Xeon has no iGPU, so VAAPI was never an option)Every transcode was falling back to software on the 4c/8t Xeon E5-1620 v3.
Fix. Edited the dockerMan template
/boot/config/plugins/dockerMan/templates-user/my-Jellyfin.xml:<ExtraParams>--runtime=nvidia</ExtraParams>NVIDIA_VISIBLE_DEVICESpinned to the GPU UUIDGPU-c82b149b-35c8-f1b6-d82a-27df58103961Recreated via
/usr/local/emhttp/plugins/dynamix.docker.manager/scripts/rebuild_container Jellyfin(it's in the autostart list, came back up on its own). Template backup:my-Jellyfin.xml.bak-pre-nvidia-20260902. No app-side change needed —encoding.xmlwas already set tonvenc+ hw decode/encode.Verification.
docker inspect→Runtime=nvidia, container healthydocker exec Jellyfin nvidia-smi -L→ sees the T400;/dev/drinow present-hwaccel cuda -hwaccel_output_format cuda … scale_cuda … h264_nvenctranscode of a 1080p file: 725 fps, ~30x realtime;nvidia-smimid-run showed encoder 99% / decoder 98%Doc updates in PR #63 (
docs/homelab-architecture.mdJellyfin bullet +docs/homelab-build-history.mdItem 20). Closing.