4K HDR Tone Mapping Transcoding - Best Cheap CPU (1050Ti 4GB)?

Server Version#: 1.30.0.6486
Player Version#: NA

Until recently (today) I’ve kept 1080p SDR version of anything in my library that I also had in 4k HDR - as my library is rather large (60TB in total) this was a significant amount of space that was essentially wasted (about 1.5TB). As I’ve been using GPU transcoding for a long time (on my 8086k integrated GPU) I figured I’d just dump all my 1080p SDR versions and let transcoding do it’s thing.

Well tonight when I noticed my CPU was pegged out I went down a path that taught me that HDR Tone Mapping transcoding doesn’t work on my 8086k’s integrated GPU (please confirm that for me actually) and that as such I was going to need to add an actual GPU. In testing I turned off Tone Mapping in transcoding and once again I was back to GPU/hardware transcoding but colors were awful (as it wasn’t tone mapping). I’ve also read that I should upgrade to the 64bit version of PMS but I don’t believe that’s going to solve this issue (going to test that later tonight when no one is streaming from me).

As I routinely have 3-5 people streaming from me at any given time (and as many as 7-10) with 1-3 of those streaming 4K HDR (which is only going to increase as I’m adding 4K HDR whenever possible) it seems that a dedicated GPU is the correct answer. So I’m looking for the answer to 2 questions

  1. Am I right that I need to upgrade to a dedicated GPU for 4K HDR transcoding with tone mapping to 1080p/720p (at between 4-10 MB)
  2. That a GTX 1050Ti 4GB is a good, low budget choice

I’m picking the 1050Ti 4GB specifically over the base 1050 2GB as I see that it offers 3 simultaneous streams (over 2 for the 1050 2GB) and it’s only marginally more expensive (like $20 more on eBay). A friend has a 1080Ti that I’m trying to talk into donating to the cause (he’s currently not using it) as I see it would support 9 simultaneous streams.

Thoughts? Any input you can provide would be greatly appreciated!

~Ross

According to the documentation, with an Nvidia card you are officially limited to 2 simultaneous encodes. I have heard there are unofficial ways around this driver limit but I don’t know anything about that firsthand, and it might be against forum rules to discuss it.

Transcoding via an Intel iGPU has no driver limit, but under Windows, you cannot get Intel hardware accelerated HDR->SDR tone mapping. Good tone mapping performance is important if your plan is to have one maximum quality file that can be played on any client.

If you like to tinker I suggest you experiment with a Linux server. If this is your processor, the HD630 GPU is pretty capable under Linux.

Thanks so much for the very helpful information - bummer that it’s limited to 2 streams, I’ll look into what you’re referring to about more but realistically 2 would be acceptable. 75% of what I stream to others is TV and there I almost never go 4k, opting for 1080p instead so the vast majority won’t care. I do wish there was a way to limit transcoding to 2 tone mapped streams but then allow multiple non-tone mapped so I could set different limits for each stream.

As for Linux yeah, I’d love to be able to go Linux on this machine and while I could just run WIndows in a guest OS on Linux I need GPU acceleration on Windows (for video editing mainly) so that’s really not an option. That and Plex is the only need I have there so going Linux would just add unnecessary strain to my current setup. You are right though and I appreciate the suggestion.

~Ross

From how you have described your needs, a pretty modest Plex Linux server would do. I hate to recommend throwing money at the problem, but if you bought one of those Celeron-powered mini desktop servers, you could spin up a new dedicated server and leave your Windows rig alone. Check out this thread for ideas.

Again you aren’t wrong and I don’t mind the suggestion of throwing money at a problem but for this specific problem I don’t have any money to throw at it (or that I’m willing to throw at it).

I did just have a friend offer to send me a 980 4GB but looking at the following chart it looks like that doesn’t have H.265 support, and given the majority of my 4K HDR content is H.265 I assume that card will do me zero good.

https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding

That’s the GM204 chip, looks like the GM206 (that was on the 950/960) does have H.265 so oddly those slower cards would work for me where the 980 wouldn’t - do you agree with that?

Thanks again for the help and advice,

~Ross

The NVIDIA Encode / Decode GPU Support Matrix will show you the codecs supported by each of their GPUs.

A 980 cannot decode HEVC video, so cannot be used for hardware transcoding of 4K HDR media.

The Plex documentation is out of date with respect to Nvidia transcode limits.

Nvidia GeForce and some Quadro GPUs are limited to three concurrent encodes (Nvidia increased it from two several months ago). Subsequent encodes will use the CPU. The number of decodes is not limited.

You can use the modified drivers mentioned on the Elpamsoft site to get around the encode limit.

1 Like

Thanks for your input as well - the same friend who was going to send me the 980 also has a 1080Ti that he’s willing to send, I didn’t want to ask for that much given a 1080Ti is still a rather valuable card but as he’s not using it and he’s one of my biggest Plex users it looks like we’re going to go that route.

One last question on the 3 stream limit - to confirm that would be 3 HDR->SDR tone mapping transcodes where I could have additional non-HDR transcodes running at the same time? So I could have say 2 people transcoding HDR->SDR while having 3 people transcoding 1080p/20MB → 720p/4MB? In the past I’ve had multiple 1080p->720p transcodes running concurrently, not sure how many off the top of my head but certainly more than 3 (maybe as many as 8 or 9 as I’ve had 11 simultaneous streams from my server before, just can’t recall how many of those were transcoding). I do run Tautulli so I could go look at it when I get home (assuming it logs that data).

Thanks once again for your time and expertise.

Not streams. Transcodes. Specifically video encodes.

Plex does not differentiate between transcoding HDR or SDR video. A transcode is a transcode.

A transcode consists of two parts: decoding from the current format; then encoding to the desired format.

Nvidia limits their consumer graphics cards, and some Quadro cards, to three concurrent video encodes. This is listed in the “Max # of concurrent sessions” column in the Encode section of their Encode/Decode Matrix. There is no hard limit on the number of decodes.

So, when using a Nvidia GPU for hardware accelerated transcoding and, if applicable, hardware accelerated tonemapping:

The first three concurrent transcodes will use the Nvidia GPU for both the decode and the encode. In the Plex Dashboard, you will see (hw) for both the decode and encode portions of the encode.

The fourth, and any additional, concurrent transcodes will use the Nvidia GPU for the decode and the CPU for the encode. In the Plex Dashboard, you will see (hw) for only the decode portion of the transcode.

Things that will affect above:

GPU resources.
At some point the GPU may run out of processing power, RAM, or bus bandwidth. When this happens, Plex should revert to using the CPU for transcoding video.

The numbers at the Elpamsoft site will give you an idea of the capability of each GPU. IIRC, those numbers were published before Plex supported HDR to SDR tonemapping using GPUs. Tonemapping will require additional GPU resources. So, the numbers on Elpamsoft’s site may not be correct when taking tonemapping in to account.

Modified / Hacked Drivers
The drivers mentioned on the Elpamsoft site provide the ability to override the Nvidia imposed three encode limit. You still have to live within the physical limits of the GPU (RAM, etc). No idea how Plex reacts to this.

CPU / System Resources
At some point you hit the limits of the CPU’s processing power, the amount of RAM in the system, etc.

When this happens Plex should refuse to transcode the video. The client will see an error message onscreen. It will say something similar to “The CPU is not powerful enough to transcode the video.”

1 Like

Sorry, I worded that very poorly as that’s exactly what I meant when I said streams. Thanks for clarifying though.

Yeah, I’ll absolutely look into this once I get the 1080Ti installed and working. I wish I could set things such that “standard” transcoding (non 4k/HDR->SDR tone mapping) would happen on the iGPU (as so far that’s working great) with 4K/HDR-SDR being handled by the 1080Ti. I do transcode to clients quiet often and it could be a bummer to have 3 transcodes happening that are just say 1080p->720p with the 4th needing HDR->SDR but not being able to due to the limitation (assuming I don’t get the improved drivers working, which I plan to do). It would be cool if you could specify this in Plex to make the best use of the hardware we have but I can see how this is sort of an edge case - at least for the moment.

Yup, I’ve absolutely seen that in the past on my pervious server. I’ve been using Plex since a few months after the original release, back in early 2008 if I recall so I’ve been through multiple hand-me-down desktops to host it. Whenever my gaming rig gets an update the machine I was using gets handed down to Plex duty, and the Plex server gets handed down to a family member, friend or eBay.

Thanks again for the clarification and all the great information everyone, 64bit Plex and 1080Ti coming soon :wink:

~Ross

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.