TrueNAS Scale - Transcoding in Plex

I just installed a T400 graphics card in my TrueNAS SCALE system . Running # nvidia-smi tells me the driver version so I’m sure the drivers are installed in TrueNAS. Under the Plex Transcoder section, Hardware transcoding, device I can select NVIDIA TU117GL [T400 4GB / T400E]. But I don’t think Plex is utilizing the graphics card.

The Plex Dashboard / Now Playing doesn’t show (hw) after the Transcode line. And the nvidia-smi reports no running processes found.

What do the Plex logs say when you try to start a stream with transcoding?

Not quite the same situation here, but I had to just ‘fix’ transcoding today. I don’t typically transcode, but wanted to verify it still works after moving to Fangtooth.

My setup is a TrueNAS Fangtooth, a Custom App for Plex, with ‘Passthrough available (non-NVIDIA) GPUs’ enabled for my Intel Arc Airbus A380. Obviously, you can’t use that option, but I believe checking the box just maps ‘/dev/dri:/dev/dri’ to the -devices section of the docker.

Today I decided to test transcode since the move to Fangtooth. Plex could see the card. Hardware acceleration was enabled. It just wouldn’t work. Trying to force a trancode, I would just immediately get a message that my server isn’t powerful enough. So, I decided to check permissions.

Within the Plex container:
/dev/dri/card1 root:video
/dev/dri/card2 root:video
/dev/dri/renderD123 root:video3

I verified that the ‘plex’ user (id = 568) was in both the video and video3 groups. I don’t remember if I had to add it to either group, but I don’t believe that I did.

On the TrueNAS host, however:
/dev/dri/card1 root:video
/dev/dri/card2 root:video
/dev/dri/renderD128 root:render

On the host, the user ‘apps’ (id = 568) was in ‘render’ but was NOT in the ‘video’ group. I added ‘apps’ to the video group, restarted the Plex container, and then hw accelerated transcoding was working again!

Was happy to see that Plex has added (experimental) hevc encoding. Now can maintain HDR instead of tone-mapping it when streaming remotely.

1 Like

@Jorsher Thanks so much for getting back to me. I ended up pretty much following what follows to get things going. Thanks again.

Cool, glad to hear you got it going.

Stinks that nvidia is still such a pain on Linux. Hoping Intel continues efforts on Arc. They are perfect for transcoding – cheap, half height, PCIE slot powered, supports all the codecs, good driver support on Linux.

Also having similar issues with apps being able to access GPUs properly however when I tried your workaround, I can’t add apps or root user to the render or video groups as they’re both built in groups and the action errors out. Thoughts?

Are you sure ‘apps’ isn’t already in the ‘video’ group? That was an earlier version of Fangtooth and may not be necessary with the current release.

If you’re using an nvidia GPU, you may want to follow the other linked guide.

But, if you want to add ‘apps’ to ‘video’, can do that from the CLI:

adduser apps video

Experiencing a lack of transcoding for plex as well. Figrate, Immich etc all happy to take advantage of my nvidia card. Plex sees the card in settings but won’t use it to transcode. I don’t see any users in the render or video groups in the UI, but maybe I’m not looking at it right…

I did this, rebooted and HW Transcoding seems to work fine now. I did move the pool my apps were in as part of my upgrade (deleting + re-creating each app coming from 24.04) so maybe some of the apps user permissions got botched when I did that…