2024-11-25, 09:13 PM
(This post was last modified: 2024-11-26, 09:51 AM by GuigZer. Edited 1 time in total.)
Jellyfin NVIDIA Hardware Transcoding Issue on Debian with Quadro P620
Environment
- **OS**: Debian GNU/Linux 12 (bookworm)
- **Kernel**: 6.1.0-28-amd64
- **GPU**: NVIDIA Quadro P620
- **Driver Version**: 535.183.01
- **Container**: Jellyfin (lscr.io/linuxserver/jellyfin:latest)
Issue Description
I recently installed a Quadro P620 GPU for hardware transcoding in Jellyfin. While the GPU is properly detected both on the host system and inside the Docker container, FFmpeg fails to initialize CUDA for transcoding with an error related to loading the CUDA library.
Attempted Solutions
I have already tried several solutions suggested in these forum posts:
- Verifying NVIDIA runtime is properly installed and configured in Docker
- Adding all necessary GPU capabilities in docker-compose file
- Setting NVIDIA_DRIVER_CAPABILITIES and NVIDIA_VISIBLE_DEVICES to "all"
- Ensuring proper permissions for the Jellyfin user in the container
- Checking if CUDA libraries are present in the container
- Verifying GPU detection using nvidia-smi both on host and in container
None of these common solutions have resolved the issue.
System Configuration
Host System Information
GPU Detection
Docker Compose Configuration
Error Message
When attempting to play a video file, FFmpeg logs show:
Additional Information
- The GPU is properly detected inside the container (verified using nvidia-smi)
- NVIDIA runtime is properly configured in Docker
- FFmpeg is built with NVIDIA support (as shown in the configuration output)
Any assistance would be greatly appreciated.
Environment
- **OS**: Debian GNU/Linux 12 (bookworm)
- **Kernel**: 6.1.0-28-amd64
- **GPU**: NVIDIA Quadro P620
- **Driver Version**: 535.183.01
- **Container**: Jellyfin (lscr.io/linuxserver/jellyfin:latest)
Issue Description
I recently installed a Quadro P620 GPU for hardware transcoding in Jellyfin. While the GPU is properly detected both on the host system and inside the Docker container, FFmpeg fails to initialize CUDA for transcoding with an error related to loading the CUDA library.
Attempted Solutions
I have already tried several solutions suggested in these forum posts:
- Verifying NVIDIA runtime is properly installed and configured in Docker
- Adding all necessary GPU capabilities in docker-compose file
- Setting NVIDIA_DRIVER_CAPABILITIES and NVIDIA_VISIBLE_DEVICES to "all"
- Ensuring proper permissions for the Jellyfin user in the container
- Checking if CUDA libraries are present in the container
- Verifying GPU detection using nvidia-smi both on host and in container
None of these common solutions have resolved the issue.
System Configuration
Host System Information
bash
$ uname -a
Linux openmediavault 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
GPU Detection
bash
$ nvidia-smi
Mon Nov 25 22:00:28 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: N/A |
|-----------------------------------------+----------------------+----------------------+
| 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 Quadro P620 Off | 00000000:02:00.0 Off | N/A |
| 28% 43C P0 N/A / N/A | 0MiB / 2048MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
Docker Compose Configuration
yaml
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- JELLYFIN_PublishedServerUrl=http://192.168.1.100
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- ./config:/config
- /srv/dev-disk-by-uuid-504655e3-3559-44c8-b61b-9eaed009f4a3/plex/serie:/data/tvshows
- /srv/dev-disk-by-uuid-504655e3-3559-44c8-b61b-9eaed009f4a3/plex/film:/data/movies
- ./transcode:/config/transcodes
ports:
- 8096:8096
- 8920:8920
- 7359:7359/udp
- 1900:1900/udp
restart: unless-stopped
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: ["gpu","compute","video","utility"]
Error Message
When attempting to play a video file, FFmpeg logs show:
[AVHWDeviceContext @ 0x55ab2d7c1d00] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x55ab2d7c1d00] Could not dynamically load CUDA
Device creation failed: -1.
Failed to set value 'cuda=cu:0' for option 'init_hw_device': Operation not permitted
Error parsing global options: Operation not permitted
Additional Information
- The GPU is properly detected inside the container (verified using nvidia-smi)
- NVIDIA runtime is properly configured in Docker
- FFmpeg is built with NVIDIA support (as shown in the configuration output)
Any assistance would be greatly appreciated.