May 8, 20251 yr I have an unraid 7.0 server, i5-2600k, 32gb 1600mhz ram, 15 drives on an ASUS P8Z77 VLK mobo. I have the Limetech Plex Docker in place. I have an Intel P2000 GPU. I'm trying to keep the costs down and keep this decades old system running as long as possible. I have 5000 movies and 22000 TV shows on my system plus music. The i5 struggles to keep up with transcoding when remote users access movies. So a few questions... 1. I know that plex prefers direct play but also supports hardware transcoding. Will the P2000 work with this config and accomplish what I thought it would? 2. Are there any guides/instructions on how to install the P2000 with Unraid & Plex? Should I (*sigh*) just spring for more Mobo, CPU and Memory? What would be a cost effective upgrade?
May 8, 20251 yr 7 minutes ago, jeffreywhunter said: I have an unraid 7.0 server, i5-2600k, 32gb 1600mhz ram, 15 drives on an ASUS P8Z77 VLK mobo. I have the Limetech Plex Docker in place. I have an Intel P2000 GPU. I'm trying to keep the costs down and keep this decades old system running as long as possible. I have 5000 movies and 22000 TV shows on my system plus music. The i5 struggles to keep up with transcoding when remote users access movies. So a few questions... 1. I know that plex prefers direct play but also supports hardware transcoding. Will the P2000 work with this config and accomplish what I thought it would? 2. Are there any guides/instructions on how to install the P2000 with Unraid & Plex? Should I (*sigh*) just spring for more Mobo, CPU and Memory? What would be a cost effective upgrade? 1 and 2 are a yes, but it would be a lot more efficient (power especially) to upgrade the CPU and mobo. Quicksync on the gen 8 and up Intel CPUs is really hard to beat. I have an i7-8700 in mine and never even notice when any of my family are watching movies
May 8, 20251 yr This site help me lot when looking for a GPU for plex transcoding. https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding I eneded up with a NVIDIA Quadro M2000 it dose what i need and its cheap, only uses slot power and singel slot.
May 8, 20251 yr Author I've since tried to install the Quadro P2000. Unraid recognizes it in devices, I was able to choose it for hardware transcoding in Plex, setup the container with all the various bits Here's what I've done: 0. In BIOS I enabled IOMMU/VT-d (allows GPU passthrough) 1. Installed NVIDIA Driver Plugin from community applications. Verified P2000 in System Devices. 2. Added the following to Plex Container Extra Parameters: ---runtime=nvidia Host Path 2: /tmp (container Added Devices /dev/nvidia0: /dev/nvidia0 /dev/nvidiactl: /dev/nvidiactl /dev/nvidia-uvm: /dev/nvidia-uvm /dev/nvidia-uvm-tools: /dev/nvidia-uvm-tools Added Variables: NVIDIA_VISIBLE_DEVICES: all NVIDIA_DRIVER_CAPABILITIES: video,compute,utility 3. In Plex>Settings>Transcoder Enabled Use Hardware acceleration when available Enabled user hardware-accelerated video encoding Hardware transcoding device set to Auto (only choice) Ran watch -n 1 nvidia-smi displays the following (no change, even when playing a video that requires transcoding - i.e. on Firefox Plex Play). Every 1.0s: nvidia-smi HunterNAS: Thu May 8 16:42:23 2025 Thu May 8 16:42:23 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 565.77 Driver Version: 565.77 CUDA Version: 12.7 | |-----------------------------------------+------------------------+----------------------+ | 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 Quadro P2000 Off | 00000000:02:00.0 Off | N/A | | 64% 37C P0 16W / 75W | 0MiB / 5120MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+ So unraid sees the GPU, but does not appear that plex is using it. When I run a video that requires transcoding, CPU gets maxed and video is choppy (i.e. GPU not being used). Obviously I'm missing something... Ideas? Edited May 8, 20251 yr by jeffreywhunter
May 8, 20251 yr Well do you have a plex-pass license/subscription? without paying for it hardware encoding/decoding is not possible. when trascoding something you should check the plex playback dashboard and see if "Transcode (hw)" shows up like this example: If the "(hw)" does not appear next to the word transcode, you're not using the gpu. Edited May 8, 20251 yr by MowMdown
May 8, 20251 yr Author 1 hour ago, MowMdown said: Well do you have a plex-pass license/subscription? without paying for it hardware encoding/decoding is not possible. when trascoding something you should check the plex playback dashboard and see if "Transcode (hw)" shows up like this example: If the "(hw)" does not appear next to the word transcode, you're not using the gpu. Yes I have a plex-pass. I am seeing transcoding, but not the same. I see: Transcode, not Transcode (hw). I am using the PlexInc Plex docker. When I try Running nvidia-smi inside the container fails with: bash: nvidia-smi: command not found So it appears that the official PlexInc image lacks NVIDIA libraries and tooling. Correct? I guess my option would be to go with the Limetech Plex? I'd RATHER NOT do that as I'd have to rebuild everything... Thoughts? Could I just copy the plex database files from the PlexInc docker to the Limetech Plex docker? Edited May 8, 20251 yr by jeffreywhunter
May 8, 20251 yr It shouldn't matter which plex docker you use, they should all support nvidia hardware transcoding. That's not something that is typically custom to certain versions of plex I don't think. It should just be standard across the board. I stopped using nvidia a while ago so I can't remember if you could ever run nvidia-smi inside plex container. Can you post the docker run command it's using to launch plex. Quote Hardware transcoding device set to Auto (only choice) Here's a clue plex can't see the card, it would show up in the dropdown. something is not passed through properly. Probably a typo somewhere Quote NVIDIA_DRIVER_CAPABILITIES: video,compute,utility I would also set this to "all" same as the other one Edited May 8, 20251 yr by MowMdown
May 9, 20251 yr Author Here's the docker run: Command execution docker run -d --name='PlexMediaServer' --net='host' --pids-limit 2048 -e TZ="America/Chicago" -e HOST_OS="Unraid" -e HOST_HOSTNAME="HunterNAS" -e HOST_CONTAINERNAME="PlexMediaServer" -e 'PLEX_CLAIM'='claim-QUMb4Y5xTiewyoDE_5zx' -e 'PLEX_UID'='0' -e 'PLEX_GID'='0' -e 'VERSION'='latest' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.webui='http://[IP]:[PORT:32400]/web' -l net.unraid.docker.icon='https://raw.githubusercontent.com/plexinc/pms-docker/master/img/plex-server.png' -v '/mnt/cache/appdata/PlexTransCode/':'/transcode':'rw' -v '/mnt/user/appdata/PlexMediaServer/':'/data':'rw' -v '/mnt/user/movies/':'/movies':'rw' -v '/mnt/user/tv/':'/tv':'rw' -v '/mnt/user/music':'/music':'rw' -v '/mnt/user/homemovies/':'/homemovies':'rw' -v '/mnt/user/pictures':'/pictures':'rw' -v '/mnt/user/appdata/PlexMediaServer':'/config':'rw' --device='/dev/nvidia0' --device='/dev/nvidiactl' --device='/dev/nvidia-uvm' --device='/dev/nvidia-uvm-tools' --runtime=nvidia 'plexinc/pms-docker' 74ca07ac98f52c59e5453e3114b926eecf5094d23db512ecd201f1d806c8b29e The command finished successfully!
May 9, 20251 yr Author 1 hour ago, MowMdown said: Here's a clue plex can't see the card, it would show up in the dropdown. something is not passed through properly. Probably a typo somewhere I've been told that the plexinc/pms-docker image does not bundle GPU support libraries by default. Perhaps that is why? Do you know for sure if its included? Is there a way to see if its there?
May 9, 20251 yr 3 hours ago, jeffreywhunter said: Here's the docker run: Command execution docker run -d --name='PlexMediaServer' --net='host' --pids-limit 2048 -e TZ="America/Chicago" -e HOST_OS="Unraid" -e HOST_HOSTNAME="HunterNAS" -e HOST_CONTAINERNAME="PlexMediaServer" -e 'PLEX_CLAIM'='claim-QUMb4Y5xTiewyoDE_5zx' -e 'PLEX_UID'='0' -e 'PLEX_GID'='0' -e 'VERSION'='latest' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.webui='http://[IP]:[PORT:32400]/web' -l net.unraid.docker.icon='https://raw.githubusercontent.com/plexinc/pms-docker/master/img/plex-server.png' -v '/mnt/cache/appdata/PlexTransCode/':'/transcode':'rw' -v '/mnt/user/appdata/PlexMediaServer/':'/data':'rw' -v '/mnt/user/movies/':'/movies':'rw' -v '/mnt/user/tv/':'/tv':'rw' -v '/mnt/user/music':'/music':'rw' -v '/mnt/user/homemovies/':'/homemovies':'rw' -v '/mnt/user/pictures':'/pictures':'rw' -v '/mnt/user/appdata/PlexMediaServer':'/config':'rw' --device='/dev/nvidia0' --device='/dev/nvidiactl' --device='/dev/nvidia-uvm' --device='/dev/nvidia-uvm-tools' --runtime=nvidia 'plexinc/pms-docker' 74ca07ac98f52c59e5453e3114b926eecf5094d23db512ecd201f1d806c8b29e The command finished successfully! I don't see a variable for NVIDIA_VISIBLE_DEVICES = all nor NVIDIA_DRIVER_CAPABILITIES = all, I know you said you added them but they're not showing up here. Edited May 9, 20251 yr by MowMdown
May 9, 20251 yr Author 9 hours ago, MowMdown said: I don't see a variable for NVIDIA_VISIBLE_DEVICES = all nor NVIDIA_DRIVER_CAPABILITIES = all, I know you said you added them but they're not showing up here. Both are there. Here's the complete Docker config (and screenshot attached). These are all the volume mappings, environment variables, and GPU passthrough settings. 1. PlexMediaServer Docker Configuration (Unraid - plexinc/pms-docker) Setting Value Notes Container Name PlexMediaServer Repository plexinc/pms-docker Official Plex image Network Type Host Privileged Mode Off Console Shell Command Shell Tailscale Off 2. Volume Mappings Host Path Container Path Purpose /mnt/user/appdata/PlexMediaServer/ /data Plex config directory /mnt/cache/appdata/PlexTransCode/ /transcode Transcoder temp directory (SSD) /mnt/user/movies/ /movies Movie library /mnt/user/tv/ /tv TV library /mnt/user/music /music Music library /mnt/user/homemovies/ /homemovies Home videos /mnt/user/pictures /pictures Photo library 3. Environment Variables Variable Value Notes PLEX_CLAIM claim-QUMb4Y5xTiewyoDE_5zx Claim token for initial setup PLEX_UID 0 Runs Plex as root (not ideal) PLEX_GID 0 Same as above VERSION latest Plex version NVIDIA_VISIBLE_DEVICES all Expose all GPUs NVIDIA_DRIVER_CAPABILITIES all Note: typically compute,video,utility recommended 4. GPU Passthrough Devices Host Device Container Device Description /dev/nvidia0 /dev/nvidia0 Quadro P2000 GPU /dev/nvidiactl /dev/nvidiactl NVIDIA Control Interface /dev/nvidia-uvm /dev/nvidia-uvm Unified Video Memory /dev/nvidia-uvm-tools /dev/nvidia-uvm-tools Additional UVM interface Despite all settings appearing correct, GPU hardware transcoding did not function with this configuration, and Plex only showed "Auto" in the Hardware Transcoding Device dropdown. The container lacked NVIDIA runtime libraries internally (nvidia-smi not found). Edited May 9, 20251 yr by jeffreywhunter
May 9, 20251 yr Solution You named the variables correctly but I don't think you actually created the variables, click edit and post the screenshot of the edit page for the two See how the orange text is blank next to "Container Variable" Should look like this (repeat this for the driver capabilities variable as well): I think you missed the "key" portion the name portion is irrelevant (the name is just so you can identify it in the template) It would have shown up in this list: Like so docker run -d --name='plex' --net='media-net' --pids-limit 2048 -e TZ="America/New_York" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Tower" -e HOST_CONTAINERNAME="plex" -e 'VERSION'='LATEST' -e 'NVIDIA_VISIBLE_DEVICES'='all' (this is missing from yours) -e 'NVIDIA_DRIVER_CAPABILTIES'='all' (this is also missing) -e 'PUID'='99' -e 'PGID'='100' -e '100'='100' Edited May 9, 20251 yr by MowMdown
May 10, 20251 yr Author 22 hours ago, MowMdown said: You named the variables correctly but I don't think you actually created the variables, click edit and post the screenshot of the edit page for the two See how the orange text is blank next to "Container Variable" Thanks MowMdown! Not sure how I missed that, but not setting up the KEY in addition to the VALUE was a big part of the problem. Additionally, (and this was a real challenge to figure out) there were a lot of permission issues at play. I ran Newperms on /mnt/cache/appdata/PlexMediaServer, /mnt/user/movies, /mnt/user/tv. The final bit, and this was important was making sure that I used the cache drive watch -n 1 "top -b -n1 | head -n 15; echo; nvidia-smi" With MowMdown's suggestions/observations, I finally got Plex Media Server running (mostly) perfectly on Unraid with hardware-accelerated transcoding using my NVIDIA Quadro P2000. Playback is buttery smooth, even with multiple concurrent 4K streams — here's exactly what I did to make it work, in checklist style for anyone else going down this road. 🧰 Hardware GPU: NVIDIA Quadro P2000 (Pascal, well-supported) Unraid Version: 7.0.0 Container: PlexInc/pms-docker Step-by-Step Setup 🖥️ 1. BIOS Configuration Enabled VT-d (IOMMU) in BIOS Disabled CSM (Compatibility Support Module) if present (not always needed) Enabled Resizable BAR if available (optional for newer GPUs) 🎮 2. Install NVIDIA Driver Plugin Go to Apps tab Install "NVIDIA Driver" plugin Reboot Unraid Confirm GPU is detected with: bash nvidia-smi or look in settings>system devices to find the GPU (important validation hardware is right) 🐳 3. Docker Container Setup (Plexinc) These are the critical Docker Container settings: Docker Container Setup Checklist – Plex with NVIDIA GPU (P2000) 📦 Container Basics Repository: plexinc/pms-docker Registry URL: https://hub.docker.com/r/plexinc/pms-docker Icon URL: https://raw.githubusercontent.com/plexinc/pms-docker/master/img/plex-server.png Network Type: Host Privileged: Off Use Tailscale: Off Console Shell: Shell CPU Pinning: (Optional — as needed) 🧠 GPU Hardware Transcoding Extra Parameters:--runtime=nvidia Devices: (Make sure both name and value are filled in) /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm /dev/nvidia-uvm-tools Environment Variables: (Make sure name, key, value and default value are filled in) NVIDIA_VISIBLE_DEVICES: key:NVIDIA_VISIBLE_DEVICES, value=all, default value=all NVIDIA_DRIVER_CAPABILITIES= key:NVIDIA_DRIVER_CAPABILITIES, value=all, default value=all 📂 Volume Mappings Container Path Host Path Purpose /transcode /mnt/cache/appdata/PlexTransCode/ Fast SSD-based transcode folder /config /mnt/cache/appdata/PlexMediaServer/ Plex configuration & metadata storage /movies /mnt/user/movies/ Movie library /tv /mnt/user/tv/ TV Shows library /music /mnt/user/music/ Music library /homemovies /mnt/user/homemovies/ Personal/home movies /pictures /mnt/user/pictures/ Photo library 🔑 Environment Variables Key Value Description PLEX_CLAIM claim-XXXXY5xTiXXXXDE_XXX (example) Optional claim token for linking server PLEX_UID 0 Run as root (Unraid default) PLEX_GID 0 Group ID (Unraid default) VERSION latest Container image tag 🔥 NOTE: Using /mnt/cache/... instead of /mnt/user/... fixed several weird bugs with hardware transcoding. Plex can behave unpredictably with FUSE paths. 🔒 4. Permissions – Set Correct Ownership On appdata and media shares: newperms /mnt/cache/appdata/PlexMediaServer newperms /mnt/user/Movies newperms /mnt/user/TV Ensures proper nobody:users ownership and 775/664 permissions. 🎛️ 5. Plex Settings (Inside Plex Web UI) Settings → Transcoder ✅ Hardware Acceleration = Enabled ✅ Transcoder Directory = /transcode (if set above) ⚠️ Optional: Disable “Use HDR tone mapping” unless needed 🧪 6. Confirming GPU Usage In terminal: watch -n 1 nvidia-smi Look for: Plex Transcoder using 500–700MiB GPU Memory GPU-Util: >30% In Plex>Activity>dashboard: Playback shows: Transcode (Video: H264 (Hardware)) - (See MowMdown's first post above) 💡 Bonus Observations Firefox sessions triggered hardware transcode reliably on 4k videos - useful since you can't control from the Plex Player anymore. Chrome sometimes fell back to CPU transcode due to codec or subtitle rendering - THIS IS STILL AN ISSUE - in Chrome, Plex does CPU transcoding...*sigh* I have to work on that next. Plex ran thumbnails and streams simultaneously without skipping or pegging CPU. HELPFUL: Using watch -n 1 "top -b -n1 | head -n 15; echo; nvidia-smi" let me watch real-time both GPU and Processes at the same time. HELPFUL: I used ChatGPT for a lot of the debugging. You can't believe everything, but it was fantastic at providing options and specific commands to use (like Watch). I'm not a Linux GURU so this aspect of AI was VERY helpful. 🧵 TL;DR Summary ✅ BIOS VT-d on ✅ NVIDIA Driver plugin installed ✅ Docker has NVIDIA_VISIBLE_DEVICES & NVIDIA_DRIVER_CAPABILITIES - Key and Value set! ✅ Mapped to /mnt/cache, not /mnt/user ✅ newperms run on all relevant shares ✅ Confirmed hardware transcode with nvidia-smi + Plex dashboard
May 10, 20251 yr Author @MowMdown Thanks again for your posts, got me on the right track. I have one last issue with Transcoding. Plex on Firefox uses the transcoder and it works fantastic. Plex on Chrome seems to prefer to use the CPU - in spite of turning "Use hardware acceleration when available" on in Chrome>Settings (chrome://settings/system). I can't force Video Quality in the Plex Player anymore (unless someone knows how to do that!), so my question is: do you know a way in plex to force chrome to use GPU transcoding vs CPU transcoding?
May 10, 20251 yr Browser-based Plex client has had issues for many years when it comes to transcoding. Many times it defaults to CPU. Even when it initially starts with GPU transcoding, it will switch to CPU (or come back with an error message) if you change video parameters (or even just when jumping to another time in the file). For troubleshooting, it is best to use a dedicated Plex client app, such as AppleTV, Roku, etc.
May 10, 20251 yr 2 hours ago, jeffreywhunter said: @MowMdown Thanks again for your posts, got me on the right track. I have one last issue with Transcoding. Plex on Firefox uses the transcoder and it works fantastic. Plex on Chrome seems to prefer to use the CPU - in spite of turning "Use hardware acceleration when available" on in Chrome>Settings (chrome://settings/system). I can't force Video Quality in the Plex Player anymore (unless someone knows how to do that!), so my question is: do you know a way in plex to force chrome to use GPU transcoding vs CPU transcoding? That's going to depend on many factors, it's probably trying to transcode to something your GPU doesn't support and it's falling back to software transcoding because chrome is requesting something your GPU cant do where firefox is requesting something compatible. You're better off using a plex client app to watch plex.
May 14, 20251 yr Author On 5/10/2025 at 10:09 AM, MowMdown said: That's going to depend on many factors, it's probably trying to transcode to something your GPU doesn't support and it's falling back to software transcoding because chrome is requesting something your GPU cant do where firefox is requesting something compatible. You're better off using a plex client app to watch plex. I have had success triggering transcoding using Firefox as the browser (it does not support H.264 files I assume). And its working well. I've not found a way to trigger transcoding otherwise.
May 14, 20251 yr Author Just wanted to share a successful Plex server setup for anyone running older hardware and considering GPU offload. System Specs: CPU: Intel i5-2600K GPU: NVIDIA Quadro P2000 Motherboard: ASUS P8Z77-V LK RAM: 32GB DDR3 OS: Unraid 6.12.x Docker: Plex Media Server (official image) NVIDIA Driver Plugin: v565.77 (New Feature Branch) Goal: Enable GPU-based hardware transcoding for multiple concurrent Plex streams—including 4K → 1080p—without maxing out the CPU. Key Steps: Installed the NVIDIA driver plugin via the Unraid CA. Passed the P2000 to the Plex container using: bash --runtime=nvidia --device=/dev/nvidia0 --device=/dev/nvidiactl --device=/dev/nvidia-uvm Enabled hardware acceleration in Plex (Settings → Transcoder → Use hardware acceleration when available). Rebuilt container with proper mappings (/config, /transcode, media libraries). Results: Up to 6 simultaneous streams, including 4K content. Hardware transcoding confirmed via nvidia-smi (GPU memory & Plex Transcoder process active). CPU usage stays between 8–32%, even under load. No playback issues. Both local and remote streaming perform great. Takeaway: The Quadro P2000 is still a beast for Plex! Even paired with an older i5-2500K, you can comfortably transcode 4K video and serve multiple users with ease. Great way to breathe new life into older hardware. Happy streaming! Edited May 19, 20251 yr by jeffreywhunter
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.