4k transcoding on Multi-CPU Server (Windows)

Hi,

I have a plex server, running on Windows with 2 Xeon E5-2650 CPUs and 32 Gb RAM.

Everything works quite smooth, but transcoding of the most 4k content didn’t work well. The movies stop every few seconds for buffering and it shows the message, that performance of the server is to low.

But CPU usage is max. on 45% (even if I change the transcoder settings to “make my CPU hurt”) and I use a SSD for the temporary files…

Does somebody have an idea why plex don’t utilize the full power of the server or can give me a hint what to do?

Thanks a lot!

Have you tried the hardware decoding beta release of Plex Server?

Just gave it a try… No improvements… When I enable “use hardware acceleration” the video don’t even start… Without same issues than before…

Perhaps you are hitting a core limit for the transcoder or codec? 2ghz is not very quick per core speed, so if you are being limited 1,2, or 4 cores for some reason, that can cause issues. More cores will be more likely to help more streams rather than a single stream, generally speaking.

Hmm… Possible… Checked it again with the windows resource monitor. Looks like all cores from the first CPU are being used, the second one is quite idle (see attached picture). Do you know the limits of the plex transcoder? I’m playing around with a HEVC Video (8bit/79mbit/59fps)

First, 10 bit color is a known issue. The transcoder team is working with others to get the codecs stablized (which is a bit of a moving target but hey, this is the ‘bleeding ege’ :smiley: )

Second, transcoding does not always benefit from ‘throw more cores at it’ (parallel) methodology.

The process of encoding must be done sequentially. The transcoder has FFMPEG at its core. As such, it has a demux thread (break apart the input file into its individual streams), a decoder thread (rip apart the data stream and pass to the appropriate encoder thread), the video encoder thread (process the video frames in sequence), the audio encoder thread (process each audio block in sequence), and the output multiplexer thread (mux and write to the output file).

Because the output file must be written sequentially, the slowest thread gates the progress of the others. There is no circumventing this in H.264 and H.265 encoding.

The CPU loading you see reported is based on the composite load of ALL cores (physical and/or virtual (hyperthread) . Examining the per-core loading will always show you transcoding bottlenecks at video. On an 4 physical - 4 Logical core CPU such as an i7-class machine, if you expand the view to examine each core’s loading, there will always be 1-2 at 100% loading. That’s the core-throughput issue showing itself. That’s also were HW transcoding helps. HW is a long pipe. lots of little operations, happening in sequence (the requirement) as they move along the pipe at blistering speed.

Making sense?

@defi88 said:
I have a plex server, running on Windows with 2 Xeon E5-2650 CPUs and 32 Gb RAM.

Transcoding is a single threaded process, your Xeon E5 (assuming it is a v1?) barely has enough single thread processing power for 1080P let alone 4K. Saying that, you can transcode multiple 1080P streams concurrently :slight_smile:

However, Plex implemented hardware transcoding with a limited set of hardware in the preview 1.4.0 release.

I have a dual E5-2665 workstation with 32GB RAM and have found that transcoding one 4K/HEVC stream on-the-fly is just do-able. Also tried the HW transcoding beta which helped a bit on the CPU loading but only at the expense of quality.

@dduke2104 said:
I have a dual E5-2665 workstation with 32GB RAM and have found that transcoding one 4K/HEVC stream on-the-fly is just do-able. Also tried the HW transcoding beta which helped a bit on the CPU loading but only at the expense of quality.

The E5-2665 is eol per Intel’s Ark so it’s not surprising it’s it will have an issue. As for HW transcoding, Yes there are issues… It is a preview from the team about what they’re working on. I believe comments about HW trancoding are best directed to that thread.

@mshe said:
Transcoding is a single threaded process, your Xeon E5 (assuming it is a v1?) barely has enough single thread processing power for 1080P let alone 4K. Saying that, you can transcode multiple 1080P streams concurrently :slight_smile:

This is not an accurate statement. Transcoding, with the exception of a codec or two, is certainly multi-threaded. VC-1 is single threaded, may be others that I am not aware of. One stream transcode of H264 will certainly use >1 core/thread.