There are tons of forums about hardware transcoding and I didn’t want my question to get lost. I’ve read through so many of them and read the hardware transcoding requirements until I can’t think straight.
My current plex server can’t handle h265 decoding to certain devices that can’t natively play it. I want to upgrade. I’m torn on what to upgrade, intel processor with quicksync and the UHD graphics 630 or an Nvidia GPU. I figured I would test it out on my gaming PC (i5 8400 with UHD graphics 6340 and an Nvidia GTX 1080). Attached is an image. I was able to transcode 4-5 video streams at once and I did not notice any stuttering, though it said I was at 100% CPU utilization. It looks like it said the GPU was doing the work!
My question: was it actually the GPU or the Intel i5 doing the transcoding? I’d rather a less expensive cpu and have a GPU handle the transcoding for me.
I’m pretty sure we won’t be able to determine which hardware accelerated transcode option was being used based on these screenshots. Some observations though:
If you run a similar test again, but this time grab a screenshot of the Performance tab of Task Manager, it may be possible to determine which HW option was being used.
The single largest consumer of CPU time by a single process was Chrome. This was likely due to its rendering of 5 streams simultaneously. A better test would be to use different clients not running on the PMS host.
Some (three) of the streams weren’t using hardware encoding due to PGS subtitles being burned in. If you are able to, using text-based subtitles would allow for better usage of hardware transcoding resources.
(Opinion) It would likely be more cost-effective to forego the external GPU and just go with an Intel CPU with Quick Sync, such as the one your are using. Nvidia’s gaming-oriented offerings are driver-limited to on two simultaneous hardware transcodes. Though that can be worked around via driver hacks.
For a real recommendation (and from others more knowledgable than I), we’ll need to know what your goals are. For example, how is your media encoded? How many simultaneous streams do you want to support? What mix of clients will you be using?
From my understanding Plex will prefer Intel quick sync over Nvidia nvenc/nvdec. I do not know if Plex will fallback to Nvidia once the Intel hardware transcoding is maxed out.
Looking at your screenshot, the three streams on top are using hardware decoding but software encoding which is probably why the CPU reached 100% utilization.
What are the specs of your current server? I personally like the GPU option because it’s generally a drop in solution whereas some CPU upgrades can require new motherboards or ram.
Plex uses the primary video controller for the system. This can be either the onboard graphics processor (QuickSync) or an add-on board such as Nvidia. Which controller is primary is typically set in the system BIOS.
Nvidia limits their consumer (GTX) graphics cards to two simultaneous transcodes. The third simultaneous transcode is performed by the CPU. Plex does not fall back to the internal QuickSync GPU.