Dedicated GPU, hardware acceleration not working?

Hi everyone,

I’m having some trouble playing 4K video over the network, from my media server to either my desktop PC or my chromecasts. It would peg the server’s CPU at 100% and it would keep buffering every few seconds.

I just got a dedicated GPU and got the Plex Pass to enable hardware acceleration, and while it does seem to offload a bit to the GPU, the CPU is still at about 80% and it still keeps buffering, exactly the same as before.

Lower quality 1080p video files (files around 2GB) have always played back fine, on just the CPU.
The higher quality 4K (15+ GB) files keep buffering.

Could someone please help me troubleshoot this issue, since I think my NAS is plenty powerful and I’m at a loss for what the actual problem could be.

Thank you so much in advance!

Hardware used:

Media Server:

  • Windows 10 with Plex Media Server
  • Intel Core i5 6400T
  • 2x8 GB 2133 DDR4 RAM
  • 60GB SATA SSD boot drive
  • 2x 2TB SATA HDD for storage
  • Nvidia Titan Black
  • 700W power supply

Network:

  • D-Link DIR868L router
  • LinkSys SE4008 gigabit switch

Playback devices:

  • Chromecast Ultra (ethernet)
  • Chromecast 2 (WiFi)
  • Desktop PC (7700k, 16GB RAM, RTX2080, ethernet)

My immediate thought is you want to check the encoding the file is in. For hardware acceleration to help, the video card needs to support native use of those codecs. As that is a 700 series GTX it looks like, if your media is h265 for instance I do not believe it would support it as native h265 was brought in until later (my 900 series card doesnt support h265 but I recall the 3000 series specifying it).

Edit: Found Nvidia PureVideo - Wikipedia looks like that card supports “Feature Set D”

1 Like

Now that you mention it, that may very well be the issue. Every video file with this issue is HEVC/h265. I immediately started a download for a bigger filesize, 4K h264 movie to rule out that it’s not some HDD/network bandwith issue. Unfortunately I don’t have any file like that readily available. I’ll get back to you asasp, thanks for the input!

One thing though, isn’t it strange that it plays at all but keeps buffering? Wouldn’t it make more sense if I’d get some error or that it wouldn’t play at all?

EDIT: I also see that the GTX 950/960 and the 10 series and up support HEVC (950 and 960 because those were apparently a new architecture, the 970 and up were not). So that means a GTX 950 would probably be more useful than my Titan Black?

see also Video Encode and Decode GPU Support Matrix | NVIDIA Developer

1 Like

I’ve no experience w/ Chromecast devices. Others can help with those.

Regarding the desktop, you don’t mention which Plex client you are using.

Use Plex for Windows. It direct plays most video and audio, including 4K HDR. It scales 4K to 1080 if needed. Note that HDR is tonemapped to SDR. Plex for Windows does not send HDR to the display.

Plex Web is limited by the browser. HEVC video transcodes, no tonemapping, most audio transcodes. Useful for server administration. Not so much for playback.

GPU
Is this the Kepler based Titan?

If so, it does not support HEVC decoding, so will be of little assistance when transcoding 4K HDR media.

You need a Pascal or later based card to decode 10-bit HEVC media (a GTX 1050 or later).

See Nvidia Encode/Decode Matrix for capabilities of their cards.

Edit: Note that Nvidia GTX cards are limited by Nvidia to three simultaneous transcodes. It is possible to exceed the limit via modified drivers. See Elpamsoft for information on Nvidia transcode performance and obtaining the modified drivers.

CPU
The QuickSync graphics in the i6-6400T cannot decode HEVC 10-bit video.

It does decode HEVC 8-bit video. Plex Media Server can use it to transcode non-HDR HEVC, H.264, VC-1, & MPEG2 video.


Edit: Note that Plex uses either the Nvidia or the QuickSync graphics for hardware accelerated transcoding, whichever is chosen as the primary video handler for the system (a BIOS setting on some systems). Plex cannot use both at the same time or fall-over from one to the other. Plex falls back to the CPU if the GPU is not available.


The CPU is not powerful enough to transcode 4K video by itself (w/o hardware acceleration). It has a 4417 Passmark. It can transcode 2 x 1080 streams, but a 17000 Passmark is needed to transcode 4K HDR media. See What Kind of CPU do I need for my Server?

Is my media Direct Playing, Direct Streaming, or Transcoding?
Monitor playback via Plex Dashboard.

Is my GPU used when transcoding?
You can use the console instead of digging through the log files.
See this post for details. Cross reference the output with the Tech Specs table in the Hardware Acceleration support document to see if the video is transcoded on the CPU or the GPU.

Transcoding 4K HDR & Tonemapping
Reference: HDR to SDR Tonemapping

Turn off HDR tonemapping in Settings → Transcoder (show advanced if needed).

Tonemapping is not supported on Nvidia w/ Windows, so it will hit your CPU instead.

Tonemapping is compute intensive. I have not seen hard data posted regarding CPU requirements, but it is likely your CPU is not powerful enough, even if the video is transcoded on a GPU.

Basically, you can add a GPU to transcode 4K video, but you’ll have to wait for Nvidia support to get HDR → SDR tonemapping


Additional Info

[INFO] Plex, 4k, transcoding, and you - aka the rules of 4k

Help us help you - how to provide logs to get your problems identified and hopefully resolved

Reporting Issues with Plex Media Server

2 Likes

The others have some great info there, but I didn’t see a comment as to your question about why it plays but keeps buffering. The computer tries to hardware accelerate, checks and its not compatible. Okay, it falls back to software. It can do this. But as another mentioned the processor does not appear to be fast enough to do this at a watchable speed. So it pauses and tries to buffer up to prevent stuttering waiting for more video. It just never stops this, because its a hardware limitation that it can’t do it in realtime. If you just wanted the video eventually, this would be fine. For a media server, not so much.

EDIT: Also to the question of chromecast talking to someone I know who uses chromecasts with vlc remote casting they were saying chromecast cant natively use h265, so from their secondhand account I don’t believe that could then be direct played so will dive you into the transcode issue you are already seeing

1 Like

Right, so it comes down to my processor not being powerful enough, and my GPU being too old for h265. I took a look at the recommended Passmark scores for CPUs before posting this but I figured I could get away with a less powerful one if I had a powerful GPU to offload to.

Thank you all for the elaborate (and quick!) replies, I know what to do now :slight_smile:

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