Not using Hardware Transcoding when everything is configured

Server Version#: 1.42.2.10156
Player Version#: 8.45 (9684)

Hi! I’m having an issue where Plex never shows that it is using hardware transcoding despite me [believing that] I have everything configured correctly.

I’m running Plex within Docker on a Debian server. The GPU is passed through and is recognized in the Plex library configuration etc.

However, whenever I load something particularly high bandwidth (e.g. 4k Blu-ray) I get either stuttering or, if remote, entire inability to play unless I manually lower the resolution to an extremely low quality.

At first this seems to be a bandwidth issue, however:

1. My local 1GB connection can easily handle direct streams

2. Remote connections should auto adjust quality

3. I usually see CPU usage ramp up

4. There is no (hw) next to the transcoding in the Plex dashboard

I’ve attached several screenshots below that may help. Please let me know if more info is needed. This mostly occurs when playing on an AppleTV 4K, but still no (hw) for transcoding when playing in a browser either.

I appreciate any help!

Any idea? I have the opposite problem. Mine is HW transcoding when I don’t want it to.

I’d suggest starting a new discussion post to get help with that. It doesn’t seem like that’s related to my issue

Still looking for help with this if anyone has any insight! :slight_smile:

Okay for anyone else having this issue; I used claude code to analyze my system and figured out that it is a permissions issue since I’m running docker in rootless mode (i.e. doesn’t require sudo).

I think either running docker as root and/or in privileged mode may work (I didn’t try those). My solution, suggested by claude, ended up being adding a udev rule that allows for all users to access the hardware. I may end up modifying this since it might be a security risk. Therefore, use at your own risk.

Here is what I added:

sudo nano /etc/udev/rules.d/99-intel-gpu.rules

# Add these lines
SUBSYSTEM==“drm”, KERNEL==“renderD*”, MODE=“0666”
SUBSYSTEM==“drm”, KERNEL==“card*”, MODE=“0666”

# Reload the udev rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Set cpu transcodes to none

Set maximum video transcodes to none. I have fiddled with all this for a week until I got everything to work. I suggest you if you dont have one to get a external gpu with a fast graphics processor and run the transcodes through that.

Create if u got a external drive a extra virtual disc to allocate RAM to that and transcode with that as well.