Jellyfin Forum
Transcoding issues with Docker & Nvidia - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Transcoding issues with Docker & Nvidia (/t-transcoding-issues-with-docker-nvidia)



Transcoding issues with Docker & Nvidia - CrookiesAndCash - 2025-11-02

Up to now I've avoided transcoding since it's just too much hassle but I have a few items in my library which are so high bitrate some of my libreelec clients can't actually play them now.

I setup everything in Jellyfin, followed the guide in the Jellyfin documentation fully, found out that that guide was actually incomplete and left out major steps in setting up the nvidia runtime in the /etc/docker/daemon.json by using nvidia-ctk, did that, and while I at least now have an nvidia runtime, I still can't use ffmpeg with it.

I tried to follow every guide I possibly can, fought with AI's for hours trying to debug it, and no matter what I do it never works.

To avoid having to use jellyfin itself to test everytime I've been using this test command, and getting this output, every, single, time

Quote:docker exec -it jellyfin-docker   /usr/lib/jellyfin-ffmpeg/ffmpeg -init_hw_device cuda -c:v h264_nvenc -f
null /dev/null
ffmpeg version 7.1.2-Jellyfin Copyright © 2000-2025 the FFmpeg developers
built with gcc 13 (Ubuntu 13.3.0-6ubuntu2~24.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --
disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl
--enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-l
ibdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enabl
e-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --
enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --ena
ble-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-li
bplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable
-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil      59. 39.100 / 59. 39.100
libavcodec     61. 19.101 / 61. 19.101
libavformat    61.  7.100 / 61.  7.100
libavdevice    61.  3.100 / 61.  3.100
libavfilter    10.  4.100 / 10.  4.100
libswscale      8.  3.100 /  8.  3.100
libswresample   5.  3.100 /  5.  3.100
libpostproc    58.  3.100 / 58.  3.100
[AVHWDeviceContext @ 0x565111cbd900] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x565111cbd900] Could not dynamically load CUDA
Device creation failed: -1.
Failed to set value 'cuda' for option 'init_hw_device': Operation not permitted
Error parsing global options: Operation not permitted

And after 5 straight hours of fighting with AI's trying to make ANY progress on debugging, my compose file looks like this 

Quote:  jellyfin-docker:
    image: jellyfin/jellyfin
    container_name: jellyfin-docker
    restart: on-failure
    runtime: nvidia
    environment:
      - PUID=1000
      - PGID=1000
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
      - TZ=timezone
    network_mode: 'host'
    volumes:
      - /usr/libConfused-faceusr/lib:ro

At this point I'll take literally anything new. I've tried everything I can find and nothing even gives me so much as a different failure. It's ALWAYS Cannot load libcuda.so.1. Could not dynamically load CUDA [b]Device creation failed: -1. [/b][b][b]Failed to set value 'cuda' for option 'init_hw_device': Operation not permitted [/b][/b][b][b]Error parsing global options: Operation not permitted[/b][/b]


If it matters, I'm on an uptodate Garuda installation.