Description:
I am trying to enable NVIDIA hardware transcoding in Plex running inside Docker. The GPU is correctly detected and accessible inside the container, but Plex fails to initialize hardware acceleration and falls back to CPU transcoding.
Environment:
-
Plex Media Server: 1.43.0.10492
-
Docker image: plexinc/pms-docker:latest
-
Host OS: Arch Linux (kernel 6.12.68-1-lts)
-
GPU: NVIDIA RTX 2000 Ada Generation (AD107GL)
-
Driver: 590.48.01
-
CUDA: 13.1
-
NVIDIA Container Toolkit: installed and working
Docker run configuration:
-
--gpus all -
--runtime=nvidia -
NVIDIA_VISIBLE_DEVICES=all -
NVIDIA_DRIVER_CAPABILITIES=all
What works:
-
nvidia-smiworks inside the container -
NVIDIA libraries are present:
-
libcuda.so.1
-
libnvcuvid.so.1
-
libnvidia-encode.so.1
-
-
lddon these libraries shows no missing dependencies -
Plex detects the GPU and attempts to use NVENC/NVDEC
What fails:
During playback requiring transcoding, Plex logs show:
[FFMPEG] Cannot load libcuda.so.1
[FFMPEG] Could not dynamically load CUDA
error: Operation not permitted
Additionally:
hardware transcoding: enabled, but no hardware decode accelerator found
As a result:
-
No hardware decoder/encoder is selected
-
Transcoding falls back to software (
libx264) -
GPU usage remains at 0%
Observations:
-
The issue occurs even with the official Plex Docker image
-
All required NVIDIA libraries are present and correctly linked
-
The failure occurs specifically when FFmpeg tries to dynamically load CUDA
-
The error suggests a runtime permission or compatibility issue rather than missing libraries
Steps already attempted:
-
Switched from linuxserver image to official Plex image
-
Verified NVIDIA container runtime and GPU access
-
Verified library presence and dependencies (
ldd) -
Tested multiple media files (HEVC, H264, SDR, no subtitles)
-
Confirmed no GPU usage during transcoding
Question:
Is this a known issue with:
-
newer NVIDIA drivers (590.x)
-
Ada generation GPUs
-
or Plex’s bundled FFmpeg build in Docker?
Any guidance on resolving CUDA loading failures inside Docker would be appreciated.
Attachments:
plex-debug-grep.txt (501.6 KB)
plex-fresh-hwtest.txt (528.7 KB)
Plex Media Server.log (1.6 MB)