Cannot get Hardware transcoding to work

Hello and Happy New Year.
I am trying to get my hardware transcoding to work with an Nivdia 1070 on Driver 580.119.02. I have the card installed on my Unraid server and can see it on the Dashboard using the GPU statistics plugin. I have Plex 4.147.1 running as a Docker in and have added the ‘–runtime=nvidia’, ‘NVIDIA_DRIVER_CAPABILITIES: all’ and ‘NVIDIA_VISIBLE_DEVICES: my UUID’ variables. When i force a Transcode the transcoding is still using the CPU. Ive checked and have Transcoder > Use hardware acceleration when available ticked in Plex Settings. Can anyone help please?

On Ubuntu, my UID is a member of the group which owns /dev/dri (the HW transcoding)

If I need to use docker,

sudo docker run \
-d \
–name plex \
–network=host \
-e TZ=“EST” \
-e LANG=“en_US.UTF-8” \
-e PLEX_UID=1000 \
-e PLEX_GID=1000 \
-e PUID=1000 \
-e PGID=1000 \
-e NVIDIA_VISIBLE_DEVICES=all \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-h nvidiaplex \
-v /usb/nvidiaplex:/config \
-v /usb/dockerplex/tmp:/tmp \
-v /usb/dockerplex/transcode:/transcode \
-v /glock:/glock \
–device=/dev/dri:/dev/dri \
plexinc/pms-docker:plexpass

#docker start plex
#docker update --restart=unless-stopped plex
[chuck@lizum docker.2011]$

(/glock is my nas)

On UNRAID, My PMS container runs privileged
(gets around the 99/100 -vs- /dev/dri ownership issue)

I just ran through a similar scenario in Unraid 7.2.3, where I already had the official Plex-Media-Server app and wanting to add a Quadro P2000 before I couldn’t afford one! This is what I did:

  1. I installed the “Nvidia-Driver” app from Limetech. You can then verify the card is detected in “Plugins” menu by clicking on the Nvidia-Driver icon. FWIW, I chose the Production Branch v580.119.02, but under Installed GPU’s, on the left, I see “0: Quadro P2000 …”. I didn’t see the GPU until I rebooted the entire server.
  2. Open the Plex Docker settings, change from Basic View to Advanced View. In ‘Extra Parameters field: –runtime=nvidia. (thats two dashes prior to “runtime”).
  3. Click on “Add another Path, Port, Variable, Label or Device” and select Config Type: Variable; Key: NVIDIA_VISIBLE_DEVICE; Value: all You can leave the remainder blank. Click the ADD button.
  4. Click on “Add another Path, Port, Variable, Label or Device” and select Config Type: Variable; Key: NVIDIA_DRIVER_CAPABILITIES; Value: compute,video,utility Click the ADD button.
  5. Click Apply on the container.
  6. I cycled Settings / Dockers from Yes, to No, to Yes, to get the changes to stick.
  7. Open a terminal and you should be able to run “docker inspect <exact_container_name> | grep Runtime” and get “Runtime”: “nvidia”, confirming that the Plex Docker has access to the GPU.
  8. Open the Plex web app as the administrator, click on the wrench icon in the upper right, look under Settings and select “Transcoder”. You need to enable “Use hardware acceleration when available” and I also enable “Use hardware-accelerated video encoding” as well. Under the pull down labled “Hardware transcoding device” I selected the now-seen “Quadro P2000” and selected Save Changes.
  9. Open a few Plex instances and play different movies, changing the playback Quality settings to something other than “Original” to get the card working. Now I have the app/plugin “GPU Statisics” by SimonFair that shows up as a widget in the Dashboard screen. The bottom most line in the widget is “Active Apps” that now shows a Plex icon, indicating the card is being used. Also, under the Plex web application, logged in as the admin, click on the Wrench icon in the upper-right, then in the left hand frame, look under Status, and click on Dashboard. “NOW PLAYING” will show the movie(s) playing with a “Video” section that shows something like “SD (H.264)- Transcode (hw)”. That “hw” indicates successful hardware transcoding is taking place.

Of course you need to have a Plex Pass subscription for this to work under Plex.

Hope this helps!