HEVC transcoding does not seem to use CPU efficiently?

Server Version#: 1.13.5.5291
Player Version#: iOS app, version 5.2

My server runs Plex in a Docker container and has 2x Xeon E5-2697v2, for a total of 24 cores/48 threads. The server has 64GB of RAM. Those CPUs do not support QSV.

Streaming from my server to an iOS device works when transcoding 4K H264 to H264 (720p, 240p), but lags when transcoding 4K HEVC to H264 (720p, 240p). When not streaming, CPU usage on the server is around 0.1-0.5%, and when streaming 4K HEVC and transcoding to a lower resolution, CPU usage is around 5-6%, with Transcoder Quality set to “prefer higher speed encoding”.

It also lags when streaming on a local network to a Chromecast, but I haven’t looked at CPU usage when that happens.

Is there a way to get smooth transcoding of HEVC content? Seems like that server should be more than powerful enough for smooth 4K transcoding… Since H264 to H264 transcoding seems to work fine, could it be a problem with the HEVC decoder? Would adding an nVidia GPU and passing it through to the Docker container help?

For what it’s worth I had Plex running on an ESXi VM (running on an older Xeon) and passed a Quadro P600 through to the VM. Transcoding HEVC to H.264 would use 5-10% GPU but the GPU was only used for encoding. The decoding was done on the CPU and it buffered every 10 seconds or so. I guess that’s a limitation of Nvidia GPUs. I ended up building a Plex server with an i5-8600 and using Quick Sync hardware acceleration it’s able to both decode and encode HEVC to H.264 on the iGPU without any issues.

I’ll start it off by saying that I know NOTHING about Docker.

That said, pretty much any intel CPU from Kaby Lake (7th gen) onwards can transcode 1 or 2 or 3 4k HEVC files (depends on bitrate) with HW acceleration. I have a cheap i5-7500 and it can transcode one or two 4k hevc files depending on bitrate, haven’t really pushed the testing very far this way…

As far as I know, Plex doesn’t support Nvidia GPUs officially.

Thanks for the replies!

So it seems to be using only one thread at 100% with the other 47 threads mostly idle when decoding HEVC, so maybe the software decoder is running single-threaded? There must be a way to get it to use more cores for decoding?

I’d rather not build another machine just for HEVC decoding; I built this one to be a NAS (running unRAID) with Plex that would be able to transcode 4K on-the-fly… :slight_smile:

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