Plex not HW Transcoding

Hi! I’m currently on TrueNAS Scale RC and I’ve setup the LSIO Plex docker image. I have a 1070 in my server and am trying to use it for HW transcoding. I’ve been trying for 3-4 hours trying to get this to just work at all. Here’s my dilemma:

GPU Shows up in the container when running nvidia-smi
HW Transcoding is on in Plex
Plex logs are saying TPU: hardware transcoding: enabled, but no hardware decode accelerator found

I’ve also tried Jellyfin, which is still struggling to transcode.

I’m on Nvidia drivers 460.91.03. I have runtime: nvidia in my docker-compose and it does show in docker inspect. I have NVIDIA_VISIBLE_DEVICES=all and NVIDIA_DRIVER_CAPABILITIES=all.

I’ve tried

devices:
  - /dev/dri:/dev/dri

and have the same issue.

Does anyone have any ideas for me? Thank you.

Can you run nvidia-smi? If so what putput do you get?

I can, and I get the regular


+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| 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  GeForce GTX 1070    Off  | 00000000:26:00.0 Off |                  N/A |
| 23%   36C    P0    33W / 151W |      0MiB /  8116MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

This may be an absurd question cause I guess you must know this already, but still: do you have Plex Pass? HW transcoding is a premium feature only available to Plex Pass subscribers:

Assuming you do have Plex Pass, and your environmental variable looks correct, what driver did you install?

Ensure you’re using nvidia’s container toolkit - Overview — NVIDIA Cloud Native Technologies documentation. You can use the toolkit with drivers installed on the host OS, or within containers themselves (doable, but I don’t recommend it) via their native container drivers solution Overview — NVIDIA Cloud Native Technologies documentation

Also, ensure you’re installing the full driver without recommends to avoid the GUI if you’re on a headless machine, but NOT the server version which doesn’t contain all the pieces you need. Since I can only post two links at a time, here’s the code:

sudo apt-get install --no-install-recommends nvidia-driver-435

Grab a newer version of course.

Edit: The container toolkit will allow you to test running nvidia-smi within a container, in case you were only testing above on the host.