HW transcoding isn’t working smoothly with Nvidia GPU

When HW Decode > Encode is working only one CPU is used for the audio to keep everything in sync, that is one of the reason a high single thread rating is important.

1 Like

thats why i’m still using 1.14.1.5488 , everything from 1.15 or above make hw not working well.

that I also thought to be the case yes, but I’ve already tested with a file with no audio. Same thing.
IT IS A BUG!

Also I’ve tested with ffmpeg and Handbrake and it transcodes A LOT faster than realtime (with audio), so I see no reason for plex to struggle.
Also, Plex transcodes perfectly fine better than realtime in all SOFTWARE. Why would it struggle when helped by hardware transcoding.
This makes no f’in sense.

Plex and Emby both are working on it. TLDR; there is the old way of using hardware transcoding using cuiivd and then the correct new way which use nved(sorry if i butchered the acronyms), Both Plex and Emby started trying to make the correct way work. Obviously this didnt work out. Both are working on getting it to work currently. I know the stable release of emby works perfectly. Give Plex some time to get their transcoder working again. Hopefully they get this new way working better and we get even better performance than before.

1 Like

Bump!
any news?
Should I try/log anything else ?

Hi @dlbogdan we have enough data on the issue for now. I’ll update you when we have something to test.

1 Like

Hi chrisallen , any news?

Haven’t had time to check on this lately but here’s a short feedback.
I’m currently using 1.15.3.835 which as far as I’ve tested doesn’t have the part of the bug which breaks the transcoding if you change resolution regardless of hardware transcoding (encoding and decoding with hack) settings. Yuhuu!

It does however peg one core of the cpu to max and leaves all the others (as much as 39 cores in my case) idle.
Transcoding 4k went smoothly though with one stream. Haven’t checked yet with multiple streams.

Dude, you need to blur out you IP address in that video.

I have a question. I just picked up a Quadro P2000 as well. I was reading the hardware accelerated streaming info at Plex’s site and it does not list it using NVDEC at all for HEVC Decoding. It says only the CPU does this and goes on to recommend which one for 8 bit vs 10 bit. I bought this card because my GT1030 has no NVDEC built in to it and is limited to only 2 NVENC streams. I wanted hardware decoding and encoding through the NVIDIA card. I have an older i7-4700K which is not great for HEVC. So is Plex really only using the NVENC portion of the card and not the NVDEC portion? Can anyone clarify this? I can’t seem to find the answer anywhere.

The other interesting thing I saw on the page was that Intel hardware encoding is not limited by amount of streams but it you have an Nvidia GTX card it limits you to 2 EVEN with a powerful Intel CPU??? See below:

  • Windows and Linux devices using Intel hardware-accelerated encoding do not have any artificial limit to the number of simultaneous videos.
  • Windows and Linux devices using NVIDIA GeForce graphic cards are limited to hardware-accelerated encoding of 2 videos at a time. This is a driver limitation from NVIDIA.

So would it simply be better to just use a good Intel CPU with a powerful iGPU and forget the Quadro P2000 altogether???

Current Plex:
Windows uses DXVA to GPU decode for AMD/NVIDIA.
Linux CPU decode.

Future Plex.
Linux Nvidia will Decode and Encode.
People have discovered Plex is working on this, created scripts to turn on the feature and 5 seconds later complain.

1 Like

Thanks for this. So essentially DXVA is a generic windows based api to support hardware decode on Nvidia and AMD but wouldn’t NVDEC be better? Can DXVA use the NVDEC chip somehow?? I found some info on Emby and it says it supports NVDEC/Intel QuickSync/AMD AMF/DXVA all as separate decoders. So it sounds like this one ups Plex at this point.

Also Plex still says it requires a 7th or 8th generation Intel CPU for hardware HEVC decode with no mention of the GPU doing this which is what NVDEC can do. So that confuses me.

1 Like

Dang I didn’t see that, thanks!

DXVA does use the GPU’s decoders it’s just going through Microsoft’s DX layer. Using the native decoders would be the best solution and Plex only has this working with QSV across the OS’s at this time. Because you usually have to change out your motherboard to upgrade your CPU (to get a gpu with HEVC) most people opt to go the add in route. It will be interesting to see when Intel delivers a discrete Video card late next year what the capabilities are.

OS capability aside, HEVC is very resource intensive and GPU’s are going to max out at around 8 streams.

Hello @bneiderman,

You can use the P2000 in linux to a degree for both encode and decode on most movie formats.
If you’re not familiar with bash scripting I recommend using this script put together by @revr3nd to hack it into working

If you do understand bash scripting, basically you’d be good to go for most movies (i.e. mkv h264/h265) if you rename your transcoder.bin to something else then make a script that call that something else transcoder and add the parameter -hwaccel nvdec

In my lab this works tons better than windows.
Also in my testing, for reasons I’ve failed to quantify (lazy), it works much better in ubuntu 18.04 than in Fedora 28/29.

please note that Linux NVDEC is not officially supported yet as the current transcoder does not contain all of the current ffmpeg code that supports nvdec on Linux. We are aware of users is using a 3rd party script to enable pre-release experimental support for NVDEC on Linux, however this does not include all of the most recent ffmpeg work for nvdec and general HW transcoding improvements.

We are working towards a transcoded update that should come soon and include offical nvdec support on Linux. We are aware they transcoding speed on Windows is not as fast as Linux and that is something we are working to address after the transcoded update. Thank you guys for your patience. I myself have a P2000 GPU in my production PMS and am just as keen as you guys for offical decoding support.

13 Likes

Thank you for the update. This is the good ish right here.

All of the bazillion threads on this topic need to point to this post.

1 Like

Hey @chrisallen. It seems to me like it’s a Quadro driver issue. I have done a ton of testing before but I just redid my testing.

My server is windows 10 pro with a P2000. I tested emby and Plex both on my server and then on my gaming pc(they performed similarly). My gaming pc is windows 10 pro and a 1080ti. All testing was 4K h265 10 bit hdr remux transcoding to 8mbs 1080p. Both are running the newest version of Plex beta.

On the server, it doesn’t “engage” correctly. It transcodes at like .2-.8x so way too slow to watch even 1 stream. But it’s not utilizing the gpu correctly because encoding and decoding usage is way too low. Like 7%. I’ve tried countless things to fix this.

On my gaming pc. It works correctly, easily got two streams on it smoothly. My driver is locked and I don’t have Tautulli on that setup so I can’t give more details than that. But when I check task manager, it’s using like 40% of the decoding chip. 20% of the encoding chip. Along with 4.8gb of vram.

That’s strange as I too have tested on my gaming PC (6 core xeon e5 1650 v3, gtx 1080 ti, windows 10) and it behaved exactly as my windows vm with p2000 passed through.

image

its 16gb 4k file

image