Server Version#: 1.21.0.3616
Player Version#: Web 4.43.4
I know it’s not recommended to transcode 4K HDR content, but I thought I’d try it out with the new tone mapping feature and ran into an odd issue. To explain a bit of background, I’m running Plex Media Server on an Ubuntu 20.04 Virtual Machine on a Hyper-V host. The Hyper-V host has two Intel® Xeon® CPU E5649 @ 2.53GHz. I’ve configured the Plex VM to have access to all 24 threads across both NUMA nodes. The VM has 16GB of RAM assigned to it and the Plex Transcoding directory is on a RAID 10 SSD array.
When transcoding a 4K HDR UHD Blu-Ray rip I’m only getting about 30-40% CPU usage across all cores/threads with no thread being above 70% utilized. (Perhaps this is a misconfiguration with my virtual machine settings.) The problem is transcoding can’t keep up, if I pause and allow the transcoding to buffer I’m able to watch, but real-time transcoding is impossible. Does Plex’s transcoding not use all the available resources? Is this just a non-ideal setup for CPU transcoding? Am I asking the right questions?
I was under the impression video rendering was one of those tasks that is easily parallelized.
You’ve got that right.
I understand it’s not ideal, just working with what I’ve got.
Also, from my understanding a VM really only incurs a performance pentantly of a few percent?
Simple software-based transcoding can be parallelized pretty well. I’m not sure spreading across two CPU dies and letting hyperthreading mix things up is going to buy you very much, though. I bet it’s 95% as fast with a single processor and less churn.
The new computation engine for HDR->SDR tonemapping requires direct access to the hardware, and that isn’t available in a VM. It’s not about the small virtualization penalty for general-purpose computation.
I wonder, if you had the right iGPU, if you could pass it through the VM and if the Intel OpenCL stuff would work. But you don’t. (Your CPUs aren’t as old as mine, by the way …)
I also suspect you could add an Nvidia card and pass it through to a Linux guest.
But a modern Core i3 machine would probably outperform either of those as a Plex Server.
Since storage space isn’t an issue I just optimized one of my 4K RIPs to original quality and the server is able to keep up transcoding optimized version easily. With the tone mapping now functional this seems to best way forward without purchasing more hardware.
I’ve changed the background transcoding option from Medium to Very Slow and now the files appear to be half the size. (Though this could just be how different movies are able to compress differently?)
I haven’t tried watching them on a TV, but on a 27" 1440p monitor they look very good to my eye.
This also makes each movie take over 24 hours to process…