Hardware transcoding fails on web player with NVIDIA gpu

I am still having the issue mentioned in the post below and wondering if after one year it has been resolved.

In Plex/web, the official solution is to preset the maximum quality before starting the playback (just like you’d set maximum quality for your TV or player when remote)

When using the desktop, or any of the other compiled apps, you can change on demand. This is because the compiled apps use a different (more sophisticated) streaming protocol with PMS.

Thing is, with AMD iGPU it works with no problems, but with nvidia gpu it does not.

Please show me the server’s DEBUG logs which capture the Nvidia GPU failing.
Also please show me the nvidia-smi console output.

Video starts playing fine, then I change playback setting quality to any of them and the video does not play anymore. Seeking also does not work.

And btw, the windows plex app also has the same issue.

log.txt (602.8 KB)

nvidia-smi

When I change the quality, a plex process appears for a second and then disappears.

Wed Aug 27 13:12:00 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.76.05              Driver Version: 580.76.05      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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  NVIDIA RTX 2000E Ada Gen...    On  |   00000000:07:00.0 Off |                  Off |
| 30%   36C    P8              4W /   50W |       4MiB /  16380MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

If I set quality to convert automatically it plays fine.

Wed Aug 27 13:18:37 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.76.05              Driver Version: 580.76.05      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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  NVIDIA RTX 2000E Ada Gen...    On  |   00000000:07:00.0 Off |                  Off |
| 30%   47C    P2             22W /   50W |     348MiB /  16380MiB |      3%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A         1671519      C   ...exmediaserver/Plex Transcoder        338MiB |
+-----------------------------------------------------------------------------------------+

Changing quality or seeking too far (subjective definition) are known issues and both rooted in the player apps.

Quality: Engineering Official workaround is to set quality before starting playback and not changing it.

Seeking: Let the buffer fill the first time then seek.

Both of these are player problems. The players are being rewritten.

For ref: I am using Nvidia 570.181 (from their PPA) on the RTX 2000 ada

[chuck@lizum ~.2000]$ nvidia-smi
Wed Aug 27 14:52:09 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.181                Driver Version: 570.181        CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| 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  NVIDIA RTX 2000 Ada Gene...    On  |   00000000:01:00.0  On |                  Off |
| 30%   39C    P8              9W /   70W |    2601MiB /  16380MiB |      0%      Default |
|                                         |                        |                  N/A |

But with the older drivers do you also have problems? Or no?

Setting quality before starting playback works, and seeking also.

Anyway, I am looking forward the release of new players.

I have no problems with these drivers.

I have seen cases where ‘bleeding edge’ nvidia drivers cause problems.

I use the PPA vetted drivers and always lag behind a few versions.
PMS does not require latest-and-greatest

Thank you. I might try those.

Hi, @ChuckPa I’m running into the same issue as Webguy, actually, even worse.
I was lucky enough to get an RTX A4000 for free, so I installed the drivers to test it and compare it with my ARC 310. Honestly, I’m a bit shocked: it can’t even handle 5 streams without buffering, and load times are quite slow from the browser. It’s a bit better through the apps (Windows, TV, mobile), but still not great.

I installed the same drivers as you, but nothing changes, the experience is still worse than with my little ARC.
PS: Plex is up to date, and I’m running Debian inside an LXC container.

Do you have any ideas before I decide to sell the card and switch to another Intel ARC?

There is clearly something going on there.

  1. My little P2200 can handle 5 streams without buffering
  2. I’ve not found the limit of my RTX2000 Ada Gen.

I do need more info.

  1. Nvidia drivers installed on the host (what does nvidia-smi show?)
  2. Host CPU
  3. How the GPU is being passed into the LXC
    (I do all Plex testing in LXC (Incus management now)

Here’s my machine

[chuck@lizum ~.1999]$ nvidia-smi
Wed Sep 10 16:16:40 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.181                Driver Version: 570.181        CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| 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  NVIDIA RTX 2000 Ada Gene...    On  |   00000000:01:00.0  On |                  Off |
| 30%   40C    P8              8W /   70W |    2547MiB /  16380MiB |      2%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         

CPU : i7 12700K
Driver : 570.181

conf lxc :

In my config:

  1. The container UID:GID is assigned my Linux UID:GID (idmap)
  2. I pass in all the nvidia capabilities
  3. The network is a veth adapter which is a member of br0
    which the host itself is also a member of
  4. Nvidia GID (from /dev/dri) grants the GPU access (how udev works)
    I do pass the entire GPU in. The Nvidia driver handles sharing with the host
  5. Media is “disk” device
[chuck@lizum ~.2007]$ incus config show plex42
architecture: x86_64
config:
  image.architecture: amd64
  image.description: Ubuntu noble amd64 (20250808_07:42)
  image.os: Ubuntu
  image.release: noble
  image.requirements.cgroup: v2
  image.serial: "20250808_07:42"
  image.type: squashfs
  image.variant: default
  nvidia.driver.capabilities: all
  nvidia.require.cuda: "true"
  nvidia.runtime: "true"
  volatile.base_image: 3821fe47b3baa537c29739e974d80bfb933438451bfc73fd8fb113ae392b8f42
  volatile.cloud-init.instance-id: 1e263380-79b7-4876-9496-ca5c34291e2b
  volatile.eth0.host_name: veth3a6a0c5e
  volatile.eth0.hwaddr: 10:66:6a:5d:58:59
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
  volatile.last_state.ready: "false"
  volatile.uuid: 34d19e1e-90e3-4e64-9938-27feb51efa74
  volatile.uuid.generation: 34d19e1e-90e3-4e64-9938-27feb51efa74
devices:
  GPUs:
    gid: "110"
    type: gpu
  disk-device-1:
    path: /media
    source: /glock/media
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""
[chuck@lizum ~.2008]$

capturing 4 streams. 80+ Mbps each → 20 Mbps H.264 w/ tonemapping.

Device 0 [NVIDIA RTX 2000 Ada Generation] PCIe GEN 4@ 8x RX: 492.4 MiB/s TX: 52.34 MiB/s
 GPU 2460MHz MEM 6801MHz TEMP  66°C FAN  43% POW  46 /  70 W
 GPU[||||||||||||         48%] MEM[|||||||6.118Gi/15.996Gi] ENC[||||||76%] DEC[||||||63%]
   ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
100│GPU0 %                                                                                                                                                                                                                                │
   │GPU0 mem%                                                                                                                                                                                                                             │
   │                                                                                                                                                                                                                                      │
   │                                                                                                                                                                                                                                      │
   │                                                                                                                                                                                                                                      │
 75│                                                                                                                                                                                                                                      │
   │                                                                                                                                                                                                                                      │
   │                                                                                          ┌─┐                                                                                                                                         │
   │                                                                                    ┌───┐ │ │   ┌─┐                                                                                                       ┌─┐                         │
   │                                                ┌─┐                   ┌─┐           │   └─┘ └───┘ └─┐     ┌─┐ ┌─┐ ┌─┐   ┌─┐                                                                               │ │ ┌───┐                   │
 50│                          ┌─┐ ┌─┐               │ │                   │ │   ┌───┐   │               │ ┌───┘ └─┘ └─┘ └───┘ └───────────┐ ┌─────┐             ┌───┐ ┌─┐     ┌─┐ ┌─┐       ┌─┐   ┌─┐ ┌─┐ ┌─┐ │ │ │   └─┐               ┌─│
   │                    ┌─┐   │ │ │ │     ┌─┐       │ │     ┌─┐     ┌───┐ │ │   │   └───┘               └─┘                               └─┘     │         ┌─┐ │   │ │ │     │ │ │ │       │ │   │ │ │ │ │ │ │ │ │     └─┐             │ │
   │────┐     ┌─┐ ┌─┐   │ │   │ │ │ └─┐   │ │       │ │   ┌─┘ │     │   │ │ │   │┌─────────────────────────────────────────────────┐              │   ┌─┐   │ │ │   │ │ │     │ │┌┼─┼──────┐│ │   │ │ │ │ │ │ │┌┼─┼──────┐│     ┌─┐┌────┼─│
   │────┼─────┼─┼─┼─┼───┼─┼───┼─┼─┼───┼───┼─┴─┬─────┼─┼───┼───┼─────┼───┼─┼─┼───┼┘                                                 └──────────────┼───┼─┴─┬─┼─┼─┼───┼─┼─┼─────┼─┼┘│ │      └┼─┼───┼─┼─┼─┼─┼─┼─┼┘│ │      └┼─────┼─┼┘    │ │
   │    │ ┌─┐ │ │ │ │   │ │   │ │ │   │   │   │     │ │   │   │ ┌─┐ │   │ │ │   │                                                                 │   │   │ │ │ │   │ │ │     │ │ │ │       │ │   │ │ │ │ │ │ │ │ │       │     │ │     │ │
 25│    │ │ │ │ │ │ │ ┌─┘ │   │ │ │   │   │   └─┐   │ │ ┌─┘   │ │ │ │   │ │ │   │                                                                 │   │   │ │ │ │   │ │ │     │ │ │ │       │ │   │ │ │ │ │ │ │ │ │       │     │ │     │ │
   │    │ │ └─┘ │ │ │ │   │   │ │ │   │   │     │   │ │ │     │ │ │ │   │ │ │   │                                                                 │   │   │ │ │ │   │ │ │     │ │ │ │       │ │   │ │ │ │ │ │ │ │ │       │     │ │     │ │
   │    │ │     │ │ │ │   │   │ │ │   │   │     │   │ │ │     │ │ │ │   │ │ │ ┌─┘                                                                 │   │   │ │ │ │   │ │ │     │ │ │ │       │ │   │ │ │ │ │ │ │ │ │       │     │ │   ┌─┘ │
   │    │ │     │ │ │ │   │ ┌─┘ │ │   └───┘     │ ┌─┘ └─┘     │ │ │ │   │ │ └─┘                                                                   └───┘   └─┘ └─┘   └─┘ └─────┘ └─┘ └───────┘ └───┘ └─┘ └─┘ └─┘ └─┘       └─────┘ └───┘   │
   │    └─┘     └─┘ └─┘   └─┘   └─┘             └─┘           └─┘ └─┘   └─┘                                                                                                                                                               │
  0│                                                                                                                                                                                                                                      │
   └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
    PID  USER DEV    TYPE  GPU        GPU MEM    CPU  HOST MEM Command                                                                                                                                                                      
4034629 chuck   0 Graphic   0%   1285MiB   8%     0%    113MiB /snap/signal-desktop/821/opt/Signal/signal-desktop --type=zygote --no-zygote-sandbox --no-sandbox                                                                            
2687012 chuck   0 Graphic  15%    901MiB   6%    19%    428MiB /opt/google/chrome/chrome --type=gpu-process --ozone-platform=x11 --crashpad-handler-pid=2686971 --enable-crash-reporter=57b416da-a2e8-4e9e-a144-7ebbc3eb8f19, --change-stack
2779315   N/A   0 Compute   0%    660MiB   4%     1%    363MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0 cuda -c
2776004   N/A   0 Compute   0%    612MiB   4%     1%    369MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0 cuda -c
2777562   N/A   0 Compute   8%    612MiB   4%    12%    359MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0 cuda -c
2778381   N/A   0 Compute   0%    612MiB   4%     2%    360MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0 cuda -c
  11225 chuck   0 Graphic   0%    409MiB   2%     2%    262MiB /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -novtswitch -verbose 3
  11612 chuck   0 Graphic   0%    402MiB   2%    10%    703MiB /usr/bin/gnome-shell
  73417 chuck   0 Graphic   0%     83MiB   1%     1%   1034MiB ./steamwebhelper -nocrashdialog -lang=en_US -cachedir=/home/chuck/.steam/debian-installation/config/htmlcache -steampid=73197 -buildid=1751405894 -steamid=0 -logdir=/home/ch
  73197 chuck   0 Graphic   0%     71MiB   0%     1%    283MiB /home/chuck/.steam/debian-installation/ubuntu12_32/steam -srt-logger-opened -nominidumps -nobreakpad steam://rungameid/2418520
  73449 chuck   0 Graphic   0%      5MiB   0%     1%    268MiB /home/chuck/.steam/debian-installation/ubuntu12_64/steamwebhelper --type=zygote --no-zygote-sandbox --user-agent-product=Valve Steam Client --lang=en_US.UTF-8 --user-data-di
  73449 chuck   0 Compute   0%      5MiB   0%     0%    268MiB /home/chuck/.steam/debian-installation/ubuntu12_64/steamwebhelper --type=zygote --no-zygote-sandbox --user-agent-product=Valve Steam Client --lang=en_US.UTF-8 --user-data-di
  13885 chuck   0 Graphic   0%      3MiB   0%     0%    138MiB gnome-control-center display

No buffering in Plex/web .. but the Chrome Browser is sucking up some time

Also consider this is a NUC12 Dragon Canyon (NUC12DCMi9-FULL)

Device 0 [AlderLake-S GT1]  Integrated GPU RX: N/A TX: N/A                 
Device 1 [NVIDIA RTX A4000] PCIe GEN 4@16x RX: 468.7 MiB/s TX: 63.87 MiB/s
GPU 650MHz  MEM N/A MHz TEMP N/A°C CPU-FAN  POW N/A W                      
GPU 1905MHz MEM 7001MHz TEMP  78°C FAN  57% POW 103 / 140 W
GPU[                             N/A] MEM[                            N/A] GPU[||              9%] MEM[|3.098Gi/15.992Gi] ENC[||||100%] DEC[|||||67%]
  ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
100│GPU0 %                                                                                                                                                                                                                          │
  │GPU0 mem%                                                                                                                                                                                                                       │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
 75│                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
 50│                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
 25│                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  0│────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
  └112s───────────────────────────────────────────────────84s─────────────────────────────────────────────────────56s─────────────────────────────────────────────────────28s────────────────────────────────────────────────────0s┘
  ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
100│GPU1 %                                                                                                                                                                                                                          │
  │GPU1 mem%                                                                                                                                                                                                                       │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
 75│                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
 50│                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
  │                                                                                                                                                                                                                                │
 25│                                                                                                                                                                                                                                │
  │                                                                                                                           ┌────────────────────────────────────────────────────────────────────────────────────────────────────│
  │                                                                                                                           │                                                                                                    │
  │                                                                                                                          ┌┼────────────────────────────────────────────────────────────────────────────────────────────────────│
  │                                                                                                                          ││                                                                                                    │
  0│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴┘                                                                                                    │
  └112s───────────────────────────────────────────────────84s─────────────────────────────────────────────────────56s─────────────────────────────────────────────────────28s────────────────────────────────────────────────────0s┘
   PID USER DEV     TYPE  GPU        GPU MEM    CPU  HOST MEM Command                                                                                                                                                               
671923  N/A   1  Compute   0%    688MiB   4%     1%    327MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0 
675212  N/A   1  Compute   4%    688MiB   4%    10%    328MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0
678485  N/A   1  Compute   5%    688MiB   4%     7%    327MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0
681207  N/A   1  Compute   0%    688MiB   4%     8%    327MiB /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 nvdec -hwaccel_fallback_threshold:0 10 -threads:0 1 -hwaccel_output_format:0 cuda -hwaccel_device:0

I’ve just made some changes and it seems to work better.

Switched secureboot to standard, I know that proxmox doesn’t like secure boot very much for drivers but it was deactivated in custom mode… so strange that it works better on the standard world or is it because of my multiple restarts :sweat_smile:

4x sources 80mbps > 20 mbps also

There have been reports of Proxmox issues.

I can’t speak to them as I only have a 4x4" cube running ProxMox

As for 80+ → 20 , that’s actually 4x(80+ → 20) == 320+ → 80 Mbps

If I understand correctly

4 streams of 80Mbps (example 4K) trancoded in 1080p (20Mbps)?

Because that’s what I did on my side to see if I had a result similar to yours

Yes.

  1. 4 independent streams,
  2. all playing in browser tabs.
  3. Each tab was receiving 20 Mbps from PMS + audio

yes,

Thanks in any case!

Since it works, I’ll leave it like that and not touch anything else. :grin: