Why wouldn't hardware transcoding start properly?

The below is a local transcode and a remote transcode of the same file running concurrently…

For some reason I see this in the logs for the remote…

Feb 06, 2019 15:33:50.715 [10152] DEBUG - Stopping transcode session bzt4ygs41usfw08act30poax
Feb 06, 2019 15:33:50.715 [10152] DEBUG - Starting a transcode session bzt4ygs41usfw08act30poax at offset 4554.0 (state=3)
Feb 06, 2019 15:33:50.715 [10152] DEBUG - TPU: hardware transcoding: enabled, but no hardware decode accelerator found

And this happens even if it’s the only stream. Why would this happen?

you need to provide your system specs, what cpu and gpu, what server version, and what server platform (windows/linux/etc).

Sorry…I’ve been a little all over the place today in trying to figure this stuff out and forgot to post the details…

PMS - 1.14.1.5488
Server 2016
Nvidia 1050ti
Intel 4440k haswell
16GB RAM

Also I don’t have proper Intel drivers installed so QuickSync should not be enabled. Transcoding for the left stream shows nvenc for the encoder

Here’s another example that I don’t understand…

another
another2

I keep seeing the encoder side switch from no hardware transcoding to hardware transcoding during the same playback.

I also dont understand dips like this…

speed => 2.6
speed => 0.8
speed => 2.1

And I don’t understand why the CPU would ever hit 100% during the transcode.

nvidia consumer video cards have a 2 stream limit

plex uses multiple threads of transcoders, and it pre transcodes a buffer for each individual movie

once the transcoder buffer is filled, it idles the transcoders until the buffer needs refreshed.

this way when there are several movies playing, the transcoder cycles through them.

plex does not keep a constant stream or transcode going.

It’s just one stream. It’s really rare I ever have more than two streams running. I did get the GPU because of the Windows Nvidia driver hack to unlock that but I’m not talking about multiple streams here. This is the only stream running. And earlier, it was just two.

The screenshots are of the same stream - it shows that the encoder side has switched from no hardware transcoding to hardware transcoding but the latter is temporarily.

Ok that makes sense. But why would the speed drop or CPU utilization hit max? If I go by the documentation, I will have issues if the speed drops below 1. And I would imagine if the CPU is hitting max utilization that buffering will occur as well.

CPU utilization…

well the speed always varies, due the potential number of transcode threads they could end at different times and plex could start a different number of threads at different times.

also dont forget that the audio will always be done by the cpu, and if you are doing this all in the same computer browser, as the server, that computer also has to do the plex decode/encode, then the brower has to the video decode to play in the window.

as to whether the nvidia limit works at the STREAM level (ie 2 different movies) or at the THREAD level (each movie will have multiple transcoder threads) I don’t think has been confirmed… but based on your thread here it appears the limit may very well be the thread.

BUT if you have already done the hack with removing the limit, then I don’t know what to say or suggest, but it is definitely very odd having 2 streams of the same movie with different transcoding methods.

if you put the task manager on performance tab, you can see the actual GPU usage too. Set one panel to video encode and another to video decode (if not already set).

image

edit again
here is my 960gtx doing 1 4k hdr transcode (server and browser same computer)

image

also earlier just now before this screenshot my cpu went 100% and it appeared the transcoder either hung or hit the cpu and was going so slow that it didnt time out when I killed the stream (i killed the transcoder thread).

Not doing any tests on the server itself. Makes sense about the audio but wouldn’t have expected it to tax the CPU to the point where it maxes frequently enough.

Server 2016 doesn’t have a GPU column. I’m on reddit now though others have complained about similar issues on Windows 10 so switching to 10 probably won’t help me.

I think I may just finally get off of Server 2016 and be on something that a lot more people on and perhaps able to address these issues.

if you feel adventurous, you can sign up for the windows insider and get newer server builds that (should) have updated task manager.

I’m fairly new to PLEX but try switching the client to play original so it’s not transcoding to see if that helps with the CPU. I always try to ensure it’s Direct Play when playing in the home.

Oh for sure I use direct streaming at home. This is for external streams.

And good to hear the GPU column will eventually make it to Server 2016 but yeah don’t think I want to try that out.

Is that really what the UI is saying? I was trying to grok the “(HW)” on the left only vs. left and right in the pictures of the 4th post. I’d almost think the left would be encoder (server) and right is decoder (player). The text at the top of the thread said “hardware transcoding: enabled, but no hardware decode accelerator found”. Oddly the first pictures have HW missing from both left and right.

I think the mode switching is in part because of how Plex splits up work as stated earlier. It works in up to 60 second chunks, then it’ll say “Throttled” for the transcode until the player takes more of the waiting buffer.

I likely have that mixed up yeah. TeknoJunky clarified what’s going on in the fourth post. In the first, I’m still not clear why with only two streams one would not use hardware transcoding at all. I have another post where GPU transcoding has made things worse as well which I can typically fix by disabling it.

I have uninstalled the hacked nvidia drivers and reinstalled plex in hopes that it helps

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