Hardware transcoding no longer working

Server Version: Debian 11 (64 bit)
Docker Version: 20.10.17, build 100c701
Server Version: 1.28.0.5998
Player Version: Multiple

I’m running Plex via Docker on my Debian host. My host has a P400 that at some point was working for hardware transcoding. I recently noticed that Tautulli no longer reported hardware transcoding for items being transcoded. I verified this with nvtop, which shows no load from Plex on the P400.

My compose is:

version: "3.4"

services:
  pms-docker:
    container_name: plex
    hostname: plex
    image: plexinc/pms-docker:plexpass
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    ports:
      - "3005:3005"
      - "8324:8324"
      - "32400:32400"
      - "32469:32469"
      - "1900:1900/udp"
      - "32410:32410/udp"
      - "32412:32412/udp"
      - "32413:32413/udp"
      - "32414:32414/udp"
    environment:
      - "ADVERTISE_IP=http://192.168.2.100:32400/"
      - "PLEX_UID=1003"
      - "PLEX_GID=998"
      - "TZ=America/New_York"
      - "NVIDIA_DRIVER_CAPABILITIES=compute,video,utility"
      - "NVIDIA_VISIBLE_DEVICES=all"
    volumes:
      - "/dev:/dev"
      - "/docker/config/plex:/config"
      - "/mnt/zpool/plex/localhost:/config/Library/Application Support/Plex Media Server/Media/localhost"
      - "/mnt/zpool/media:/media:ro"
      - "/etc/localtime:/etc/localtime:ro"
      - "/docker/config/certbot/etc-letsencrypt:/etc/letsencrypt:ro"
    devices:
      - "/dev/dvb:/dev/dvb"
      - "/dev/dri:/dev/dri"
    restart: unless-stopped
    labels:
      - "com.ouroboros.enable=true"
    logging:
      driver: json-file
      options: 
        max-file: "3"
        max-size: "10M"
    network_mode: VergilNet

I have “Enable HDR tone mapping”, “Use hardware acceleration when available”, and “Use hardware-accelerated video encoding” enabled in the server settings. Notably, the container is able to see the P400:

[goose@Vergil: ~ ] $ docker exec -it plex nvidia-smi
Sat Jul 23 23:39:59 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.129.06   Driver Version: 470.129.06   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 P400         Off  | 00000000:05:00.0 Off |                  N/A |
| 58%   54C    P0    N/A /  N/A |      0MiB /  2000MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
[goose@Vergil: ~ ] $

I’m not sure what changed/at what point hardware transcoding stopped working. Any idea where I need to adjust things to get it back?

Edited to fix the block text formatting

I have a P2200 , using Ubuntu 20.04 (server)

  1. Check your driver version. it’s a bit dated
[chuck@glockner ~.2001]$ nvidia-smi
Mon Jul 25 11:57:11 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.73.08    Driver Version: 510.73.08    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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 P2200        On   | 00000000:07:00.0 Off |                  N/A |
| 48%   38C    P8     4W /  75W |      1MiB /  5120MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
[chuck@glockner ~.2002]$ 
  1. Also check here please. I don’t see where the P400 is supported for transcoding.

Thanks for the response. My driver is the best I can get through backports, as my server is also a Proxmox host, and the more modern drivers available through NVIDIA and/or the standard repositories conflict with Proxmox.

Checking that page, I do see the P400 supported:

I found it… Sorry

Check / upgrade the driver version. 470 is a bit old.

PMS updates the nvidia drivers in a delayed-sync with Nvidia

Followup.

Running the checklist:

Make certain the PLEX_GID is a member of the group (either render or video) which owns /dev/dri

1 Like

Check / upgrade the driver version. 470 is a bit old.

I wish I could update it further. I think we replied at the same time earlier, but I described why I can’t update past 470 at the moment. While it is 13 months old, I am hoping that is not the culprit. I don’t have a good way to test right now, without entirely reinstalling the OS/removing Proxmox.

Make certain the PLEX_GID is a member of the group (either render or video) which owns /dev/dri

I think you meant make sure the UID is in the proper group? Or should I be setting my PLEX_GID to GID 44 (The video group)? For reference, my PLEX_UID is 1003 (User cortana), and my PLEX_GID is 998 (Group docker).

The UID that Plex runs as is in the groups for video and render, which is the group for /dev/dri:

[goose@Vergil: /dev/dri ] $ ls -lah
total 0
drwxr-xr-x  3 root root        120 Jul 23 19:48 .
drwxr-xr-x 25 root root       6.1K Jul 25 01:31 ..
drwxr-xr-x  2 root root        100 Jul 23 19:48 by-path
crw-rw----  1 root video  226,   0 Jul 23 19:48 card0
crw-rw----  1 root video  226,   1 Jul 23 19:48 card1
crw-rw----  1 root render 226, 128 Jul 23 19:48 renderD128
[goose@Vergil: /dev/dri ] $ grep -E "^(video|render)" /etc/group
video:x:44:goose,cortana
render:x:107:goose,cortana
[goose@Vergil: /dev/dri ] $

No… I mean the GID (group ID)
All ownership is UID:GID format.

In your /dev/dri, renderD128 is UID=root, GID=render.

You do have coverage.

I don’t know how to update proxmox core packages (it’s not one of the distros we support) but I would think there must be a published way to install new drivers on top of existing drivers.

I’ll look into it on their forums and report back if/after I can. The host itself is Debian, it’s just using a Proxmox kernel (5.15). The default nvidia-driver in the Debian repos only supports up to kernel 5.10. I’ll see if they can support me in installing the newest driver from NVIDIA’s website, rather than the repo.

The driver does appear to have been the culprit. Using 515 directly from NVIDIA seems to have alleviated my problems. I can no longer use nvtop, since it is not compatible with the NVIDIA-direct driver. But both nvidia-smi and Tautulli now report hardawre transcoding.

Thanks @ChuckPa :heart:

@goose_ws

Given this is a media server, I’ve never found a need for nvtop. (we’re not gaming)
:slight_smile:

Glad it’s resolved for you.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.