Steps to get Plex Hardware Transcoding to work with AMD iGPU (Vega) on AMD mini PC...


RichB

Recommended Posts

This is a quick post to try and help those newer to unraid like me to setup a Plex container and enable hardware transcoding using a modern AMD Radeon iGPU often found in mini PC's. I'm setting up a low power home lab to learn and get some utility out of unRAID. I was doing my initial setup and walking through the steps to get HW TC to work. Key steps below:

  1. Install Plug in Radeon TOP
  2. (Optional, but suggested) Install Plugin, GPU Statistics
  3. Install App, Plex-Media-Server (official from Plex) - this is only version that natively supports HW TC without other extra parameters and craziness I'm aware of. 
  4. Ensure the repository is: plexinc/pms-docker:plexpass - I believe that Plex HW TC support is only available in the Plex Pass build, which I have a lifetime membership so I think the Plex server claim step ties back to that possibly
  5. Go to bottom of page and select '+ Add another Path, Port, Variable, Label or Device', Select 'Device'
  6. Enter in Name field: AMD GPU
  7. Enter in Value field: /dev/dri:/dev/dri
  8. Save, Done when complete
  9. Go to Plex UI, Server settings > General and Check for updates and make sure you have the latest, then make sure under Server Update Channel, Beta is selected, save ensuring you're up to date fully and have Beta selected
  10. I tend to like cycling Docker altogether when I make major changes to ensure the instances all reflect them so I go to Settings, Docker and set Enable Docker to No, Apply...wait for things to cycle down, then change back to Yes, Apply, Done
  11. Go to settings in your Plex server UI then Transcoder then go to "Hardware transcoding device" and then select your specific gpu.

 

Key Step to verify: Go to Plex and start a movie, then force a transcode by changing the playback settings to a different value. Then in Plex UI go to dashboard, now playing, expose details and you will know HW TC is working by seeing '(hw)' at end of the transcode line.

 

image.png.37fc32894edc91fb249db104b072b66e.png

 

At this point, I think those with modern AMD Ryzen iGPUs with have hardware transcoding enabled in an unRAID Plex docker container!

 

For reference my setup is: unRAID 6.12.4, AMD Ryzen 7 5800H based mini pc with Radeon (Vega 8 based) GPU. Hope this helps others.

Edited by RichB
added suggested edits
  • Like 1
  • Upvote 2
Link to comment
On 11/18/2023 at 7:15 PM, RichB said:

This is a quick post to try and help those newer to unraid like me to setup a Plex container and enable hardware transcoding using a modern AMD Radeon iGPU often found in mini PC's. I'm setting up a low power home lab to learn and get some utility out of unRAID. I was doing my initial setup and walking through the steps to get HW TC to work. Key steps below:

  1. Install Plug in Radeon TOP
  2. (Optional, but suggested) Install Plugin, GPU Statistics
  3. Install App, Plex-Media-Server (official from Plex) - this is only version that natively supports HW TC without other extra parameters and craziness I'm aware of. 
  4. Ensure the repository is: plexinc/pms-docker:plexpass - I believe that Plex HW TC support is only available in the Plex Pass build, which I have a lifetime membership so I think the Plex server claim step ties back to that possibly
  5. Go to bottom of page and select '+ Add another Path, Port, Variable, Label or Device'
  6. Enter in Name field: AMD GPU
  7. Enter in Value field: /dev/dri:/dev/dri
  8. Save, Done when complete
  9. Go to Plex UI, Server settings > General and Check for updates and make sure you have the latest, then make sure under Server Update Channel, Beta is selected, save ensuring you're up to date fully and have Beta selected
  10. I tend to like cycling Docker altogether when I make major changes to ensure the instances all reflect them so I go to Settings, Docker and set Enable Docker to No, Apply...wait for things to cycle down, then change back to Yes, Apply, Done

 

Key Step to verify: Go to Plex and start a movie, then force a transcode by changing the playback settings to a different value. Then in Plex UI go to dashboard, now playing, expose details and you will know HW TC is working by seeing '(hw)' at end of the transcode line.

 

image.png.37fc32894edc91fb249db104b072b66e.png

 

At this point, I think those with modern AMD Ryzen iGPUs with have hardware transcoding enabled in an unRAID Plex docker container!

 

For reference my setup is: unRAID 6.12.4, AMD Ryzen 7 5800H based mini pc with Radeon (Vega 8 based) GPU. Hope this helps others.

 

Works great!

Just a small addition: in Step 5 make sure to select Device from dropdown and enter the values as explained in steps 6 and 7.

 

Also, go to settings in your Plex server UI then Transcoder then go to "Hardware transcoding device" and then select your specific gpu.

 

I tested on AMD 4350G. Works well!

  • Like 1
Link to comment

Follow up:

TLDR - The Ryzen 7 5800H mini pc can run ~4 1080p HW TC's before choking(higher bit rate 1080p original down to 8gbps, not 4k tc). 10+ direct play streams. CPU was the constraint on the HW TC count, not GPU. If you really need to do many HW TC's, go with Intel gen 12+(with quicksync) and 16 to 32Gb RAM. You can get away with gen 8+ as well and may find better deals. Good luck.

 

I was able to fire up a bunch of streams to test out performance informally. Browser was on same local network, chrome latest version. Navigated in each window to Plex UI, picked a movie that had a rate/quality higher than 1080p 8mbps, forced to 1080p, 8mbps. Was able to get up to 4 hardware transcodes going before trying to fire up the 5th failed. Did not see any perceptible buffering, but didn't run for that long. GPU got up to about 20-30% max, so it was CPU constrained I think. CPU was showing a bunch of red and orange with overall % at 70%+ and close to 100 at times. Another factor to CPU load was new unraid build was creating parity disk and seeing s lot of IOwait on cpu? I also have around 20 dockers running and 1 VM that was off at the time, so this mini pc can handle a lot.

 

I also tried to open a bunch in direct play to see how many streams I could get. I got close to 10 1080p streams and had to get back to work. For me, this inexpensive $330 mini pc(w/32gb ram and 1Tb nvme (gen 3) was a great little home lab pc to try things out. PS: Don't tell the fanatics, but I got a usb 3 (gen 1) 8 bay Syba DAS enclosure and am running the full array from it with smart data working and no drops or errors so far. Fingers crossed. I had 2 4bay DAS enclosures, but the drive identification in the array slots was getting confused and think splitting across usb controllers was the issue. So far no problem with that. We shall see. Good luck all.

Edited by RichB
added detail
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.