Server Version#: 1.24.3.5033
Player Version#: 8.23.1.28053 (nVidia shield)
I have a setup with a Windows server running i5-4690K CPU and a GTX 970 GPU. My player is a nVidia Shield (2017)
I simply cannot figure out why I cannot play 4k videos on my Shield device. It keeps buffering saying to me something like “your server is not powerfull enough…”. I recently put in the GTX 970 since I thought that would make a difference but it makes zero difference.
When playing it seems the GPU is very low load, I don’t know if this is expected ?
Attached is some info on the movie files and a screenshot showing that CPU is like 97% and GPU below 2% (it goes between 1-4%)
I know the CPU can’t handle 4K videos, but I really thought adding an old GTX 970 would make some kind of difference.
I’m not entirely sure what log files would be asked to troubleshoot this, since there is a lot different files. Let me know if logs are needed.
Hope you can point me in the right direction, thank you.
Also try remuxing the file to remove the unneeded subtitles.
The 970 does not help with transcoding because (a) it cannot decode HEVC video and (b) Plex does not support HDR → SDR tonemapping with Nvidia GPUs on Windows based systems.
So basicly what I understand is, that I’m having issues due to: attached subtitles, HEVC and HDR10.
I tried playing the movie files through my mobile device (Google Pixel 3A) with Plex app. And there they start almost instantly with subtitles and does not buffer.
I also tried playing the movies through browser player “[IP]:32400/web” and that is the same issue with buffering.
It did not help to disable subtitles on the nVidia Shield.
So next step will be remuxing the videos and removing the subtitles from the files ? I guess that is what the remuxing is supposed to do ?
I’m probably not informed, but why does subtitles make a difference in 4k vs 1080p videos ? I mean all the 1080p files play with no issues with subtitles.
Trying to undertand the link with “Video Encode and Decode GPU Support Matrix [NEW]”
My server needs to decode the video before “streaming” it to my player device, right ? I should not bother with encoding, since this is something done when making the video file, right?
Another thing I don’t understand is, when the CPU on the nVidia Shield should be able to handle these video files, why is that CPU not used in this equation ?.
Guess it is just time to upgrade CPU on the server
Subtitles are not just subtitles - there are image based vs text based. .srt are text based and do not trigger a transcode. .pgs are image based and do trigger a transcode.
I would personnally not go for the realtime trancoding of 4k media - I would rather remux to support direct play. ie. make sure I always use text based subtiles and have a compatible audio stream as the default one (I prefer AC3).
Thanks for the suggestion. I will look into this trying to use MKVToolNix .
What is the explanation for the files being played perfectly on my mobile device ? Is plex using another way to transcode and maybe resize to mobile devices ?
To what is the Shield connected? Is the TV/monitor/etc capable of displaying 4K HDR?
Is the Shield local or remote to the Plex server? If remote, bandwidth limits might come into play.
How is the Shield connected to the network - wired or wireless? If wireless, is it on a 2.4 GHz channel or a 5 GHz channel?
Play one of the movies on the Shield with subtitles turned off. Monitor playback via Plex Dashboard → Now Playing.
Is the video or audio direct playing / direct streaming / transcoding? Attach a screenshot if possible.
Now repeat with subtitles turned on. What is shown in the dashboard?
Example:
Unknown at this time. If the movie direct plays / direct streams on your Pixel, it should do the same on your Shield.
The Plex Dashboard screenshot above is playing a 4K HDR movie on my Pixel 3a XL. The audio is transcoding, as the phone does not support TrueHD audio. The video and subtitles are direct streaming. The movie also direct plays on my Nvidia Shield.
The screenshot above shows the movie has 27 subtitles embedded in the file.
Use MKVToolNix and remove the unnecessary subtitles.
FYI, this also applies to audio tracks.
In theory, you should not have to do this. In practice, it can sometimes help Plex direct play media.
When Plex direct plays streams a movie, it sends the entire file unaltered to the client. This means it sends all the audio, and subtitle tracks, even the ones you are not using.
This can cause issues for some Plex clients, resulting in undesired audio or video transcodes.
I’m not aware of any such issues with the Shield. However, it never hurts to prune out unneeded audio and subtitle tracks.
Edit: Correcting to say “direct play” instead of “direct stream.”
Browsers do not support direct playing HEVC HDR video (the kind in 4K HDR movies). Playing the movie in a browser forces Plex to transcode the video, which is why your CPU hits 100%.
Most likely an issue with the video format. Subtitles can exacerbate the situation on some clients, which is why everyone asks “what happens when subtitles are disabled?”
4K HDR movies are HEVC/H.265 10-bit video.
1080p/720p movies from Blu-ray discs are AVC/H.264 8-bit.
The Shield should direct play both formats (unless the video is poorly encoded).
Not all Plex clients handle HEVC video - Plex Web, older streaming devices w/o HEVC support, etc.
A video transcode consists of two parts: a) decoding the video from its current format; and b) encoding it to the desired format.
To use hardware accelerated transcoding in Plex, the GPU must be able to decode the video format in the desired movie/show/etc. If it cannot, then Plex will use the CPU to decode the video.
On the encode side, Plex always encodes to H.264 8-bit video. That format is supported by all Nvidia GPUs and Intel iGPUs (QSV) that Plex can use for hardware acceleration.
What happens with the 970 & HEVC media:
Look in the decode portion of the Nvidia web page. You’ll see the 970 cannot decode HEVC/H.265 video.
This means Plex will try to decode the movie using your server’s CPU. Decoding is CPU intensive, so your CPU immediately goes to 100% utilization. Furthermore, the 4690K is no where near powerful enough to decode 4K HEVC video in real time, so you experience buffering when the video pauses to let the CPU catch up on things.
Can you use the Intel Quick Sync Video GPU in the 4690K?
Not for HEVC video. You would need a 7th Gen Intel CPU or later to use the on-board GPU to decode HEVC video. Intel 4th gen CPUs can decode MPEG2, VC-1, & H.264 video. Intel added support for HEVC 10-bit starting with 7th gen CPUs.
What Nvidia GPU could you use?
You would want a GPU that can decode HEVC 10-bit 4:2:0 video. Basically a GTX 1050 or better. See the Nvidia decode/encode matrix for capabilities of the various cards.
So I have decided to troubleshoot some more and look into it. There was a lot of stuff I didn’t know apparently.
But to answer your questions
Shield (2017) is connected to my Samsung TV UE55HU7205 via HDMI. The TV should be supporting 4K HDR
Set up Shield to run 4K 60hz now, some rare occasions the TV tells me that the resolution is to high on HDMI1 and I need to reset the device. Then I just need to turn off/on a couple of times and then it works. Figuring I need to replace the HDMI cable to make sure it is at least 2.0.
A couple of days ago I found out that I could enable what Samsung calls HDMI UHD Color (“This setting is optimized for UHD 50P/60P 4:4:4. and 4:2:2 signals …” I enabled that.
The TV is connected via optical audio cable to my Samsung HW-C450 soundbard that supports Dolby Digital, DTS, SFE. I also found out how to set up the TV to use DTS through digital out. However it seems the soundbar shuffles between DTS and PCM some times. I think I will replace the audio cable.
Shield is connected to wifi through 5GHz 1 meter away from AP (Ubiquiti nanoHD). Planning on cabling the shield instead, to eliminate this as a cause. Just need to get a hold of some cables and stuff.
I have tried working around with MKVToolnix to remux the file
so the remuxed file, I accidentally leaved romanian srt subtibles and removed the TrueHD audio, will still not direct play. Transcoding and stutters.
Then I threw the video through Handbrake for a H264 format (Went from 43GB to 6GB :-o )
This format direct plays with no issues.
The original file stile direct plays on my Google Pixel 3A phone.
My friend has quite a similar setup (Newer LG tv, newer Sonos soundbar, cabled Shield 2019) I asked him to test out the file and that direct plays for him on his setup. Shield 2017 Tegra x1 vs 2019 Tegra x1+ seems not to have changed in codecs and should be able to handle the movie file no matter if it is 2017 or 2019 edition of the Shield.
I tried disabling transcoding in settings pf PMS and that ofcourse just gave me the “cannot play file type”
I tried disabling the setting of PMS for SDR mapping and that helped me out with the FullHD video I had buffering issues with.
So I need to change a few cables and make a net cable for the Shield and I’ll try again.
I found a review of the set here. I’m using Google Translate to read it in English, but it says HDR is not supported.
I also looked at the Samsung support site. Neither the Instructions for Use nor the Quick Start guide mention HDR capability.
This would explain why your setup is transcoding 4K HDR video.
If your friend’s LG supports 4K HDR, then the movie would direct play on their setup. Also, I believe the 2019 Shield supports HDR to SDR tonemapping. If so, the video would still direct play on their setup even if the TV did not support HDR.
Your Handbrake example shows the TV can play 4K H.264 SDR video.
You might try making another sample, but using H.265 instead.
You don’t need to encode the entire movie. A 30 second sample would be sufficient. In Handbrake, set Range = Seconds (vs Chapters) = 00:00:00 to 00:00:30. Put it in an “Other Videos” library and Plex won’t try to match it to online databases, show it as a duplicate of your existing movie, etc.
We could also look at the server logs and client logs to see if they show anything.
Enable logging in the Plex app on the Shield (reference)
Play the 4K HDR movie for 30 - 60 seconds (enough to show the problem).
Stop playback, wait ~1 minute for the server to settle.
Pull server logs (.zip) and client logs (save the web page as a .txt file).
Attach to thread.
Cabled vs WiFi might help with buffering due to network conditions, but it won’t matter for transcoding.
Also, given the nanoHD & Shield both support 802.11ac and their proximity to each other you may not need to bother. That should support well over 100 Mbps throughput.
You can use iPerf 3 to check the throughput on your network. Download iperf3 for Windows. Load the free Analiti app on your Shield. It has an iperf3 client & server. Run the iperf3 server on your Plex server (CLI based), then launch the Analiti app and point it at the server.
FWIW, I had a Samsung F7100 TV (2013, 1080p) and had trouble with dts passthrough switching to PCM when using the Plex app on the TV. The TV was connected to a receiver via optical cable. If I wanted dts output, I had to select it in the TV (not Plex) settings every time I played a video with dts audio (no issue with Dolby Digital audio).
I replaced the TV & receiver and added my Shield a few years ago, so I cannot replicate your setup.
However, it might just be the nature of older Samsung TVs to default to PCM output for non-AC3 audio.
Thank you very much for that very detailed post. (and for me expensive )
I have no idea where I had the idea the the TV supported HDR. I was totally sure it did but I see what you’re saying.
So before I’m using a lot more troubleshooting time on this I decided to go get a new TV and Soundbar. I should soon be able to handle all formats and codecs thrown at me for the time being. I will get it hopefully this week and try again if all seems to work.
I have learned incredible much through this thread, for instance a small thing like HDMI cables. I had no idea that HDMI 2.1 was to prefer over optical cables for surround and such. I’m still stuck at some 1.4 I believe. They have also been replaced.
Also I learned that a display device does not just show an image based of a video signal in a hdmi cable but that it needs to understand the format it is feeded to show it correctly. This has not been an issue for me for so many years that I did not give it a thought.
If you do buy a new soundbar, make sure it has HDMI inputs.
You will still want to use your Shield instead of the Plex app on the TV.
Shield ← HDMI → Soundbar ← HDMI → TV
Limited audio codec support
TV based apps cannot passthrough high bit rate, lossless audio such as TrueHD, even when using HDMI-eARC (TV manufacturer, not Plex, restriction). As a result, when you play a TrueHD audio track using the Plex app on a TV, it will be transcoded to a different format, and any Atmos information is lost.
LG & Samsung TVs do not support dts audio. Playing dts audio using the Plex app on those TVs results in the audio being transcoded. Other TVs may have similar restrictions. Check the list of supported audio formats in the TVs tech specs.
Limited Subtitle Support
The Plex app on LG & Samsung TVs has limited subtitle support. Enabling PGS or VOBSUB subtitles results in a video transcode.
On LG TVs if the audio is transcoding, enabling SRT subtitles results in a video transcode. The same has happened with Samsung TVs in the past. I’m not sure about current models (it varies based on the Tizen OS version).
Android based TVs (Sony, etc) should handle subtitles the same way as the Shield and other Android TV devices. PGS, VOBSUB, & SRT should not force a video transcode.
Possible limited audio passthrough connected devices
Connecting the Shield to the TV can be problematic with some TVs. Some, such as current LGs, block dts audio passthrough for devices attached to HDMI inputs.
Check the TV reviews at rtings.com. They test audio passthrough for connected devices. The review will tell if the TV supports passthrough for TrueHD and dts audio formats.
Already redirected a friend to this post, since he was seeing constant buffering through browser. Here he could see that browser player did not support hevc hdr. He got the desktop app and everything worked fine.
Hurray! Thank you everybody for your suggestions and help.