Need Understanding how Plex works

So here’s the issue. Back in the day it was wonderful watching all these movies on Plex stored on my pc. Further, I could share them with my extended family. Sweet!
Then came UHD and all went south in a hurry. Files became extremely large and buffering became an increasing issue. To counter, I’ve gotten faster hardware (i9 Intel CPU) with 32 Gb RAM, NvMe drives (currently have 4 installed!), hardwired with Cat5 cables, and HDMI 2.1 cables/ports on my Roku/now nVidia Shield, Sony receiver and Lg Tv.
Still buffering on highest bitrate movies (>50 Mbps).
And don’t get me started on the issues with Plex and DoVi files!

So: 1) when playing UHD mkv movies on equip that can handle it, does transcoding still occur or are files passed through? What’s actually playing the file, my PC, the Shield, the Tv, or Plex??
2) ie: where’s the transcoding occuring? At what point in this scheme?
3) is that my issue, the bottleneck is the transcoding or is it in the reading and transferring of data from my NvMe drive on my PC eventually to the Tv?
4) any advantage to adding drives to the Shield directly? It has 2 USB 3.0 slots as well as a SD slot and also some internal memory storage as well.

Sorry if I come across as a bit naïve because, as you can easily see through my post, I really don’t know what I’m talking about and have been struggling my way through to get the result I want. I want to seamlessly watch highest bitrate movies with ATMOS sound. Too much?

You listed a bunch of gear, like a Roku and a Shield and a TV, any of which may be running the Plex client, and they all have different capabilities

Can you describe in detail one specific AV setup and file that isn’t working for you?

Hi. Thanks for your interest.
Sorry if my post seemed too confusing or meandering.
To pick one instance, Say I have a movie on my Nvme drive I want to see. I’m connected from my pc via CAT5 to my ASUS RT AX88U. Then it’s CAT5 to my nVidia Shield from my router and inputs via HDMI 2.1 to my Sony STR-ZA2100ES receiver, switched to STB input, turn on my LG OLED65C7P tv, which is output from my receiver through a HDMI 2.1 cable to HDMI 2 (ARC) input on the tv. The Plex app is on the Shield. I pick the movie I wanted to see, set the appropriate playback version I’m after and off I go. On another note, I did just this week switch to the nVidia Shield having learned that the ethernet port on the Roku Ultra was only 100 Mbit whereas the Shield was a 1 Gb port. I haven’t as yet fully “tested” out the Shield to see if it buffers as well. Perhaps it doesn’t. I don’t know as yet. I’m still interested in learning from others about how this all functions and where, if anywhere, there’s something not right or could be improved.

Most movies did fine but some, at least on the Roku Ultra, often playing a very high bitrate still induced buffering. eg: Batman 2022 runs at 90 Mbps if chosen. It consistently buffered on the Roku at that high bitrate. I don’t know yet if it will on the Shield. Testing it out today.

1 - Playback is done by the device (Roku, Shield, etc.) The Plex app on this device decides if the video can be played as-is (aka Direct Play) or not. If not, the server will change the file on it’s end so it will play on this device.

2 - Yes, it’s done by the server.

3 - Transcoding is very intensive, especially for 4K videos. a 4K video will take 4x the power compared to 1080p videos (with the same bitrate for both files). You also need to look at the codec used for the video. It also takes about 4x the power for HEVC vs H264, so a 4K hevc file needs 16x the power compared to a 1080p H264 video (again assuming the same bitrate).

A 4K HEVC 50Mbps video file is going to take a very powerful machine to transcode. If your computer isn’t fast enough to process the video in real-time, then you will get buffering. This stress can be reduced through hardware transcoding. That’s where the transcoding load is moved from your CPU to your graphics card unit (GPU) (either embedded or dedicated). This does trade off some quality for the speed.

Also keep in mind that when PMS does transcode hevc video, it will convert to H264. If you don’t have any bitrate limitations enabled, this will increase the bitrate of the resulting video (this can be several times larger) to maintain the quality of the original. Is your internet upload speed and the user’s download speed able handle this higher bitrate?

4 - No. Adding hardware to the client has no advantage. Except if you are using Plex for Windows/Mac/Linux or Plex HTPC. These can request the file as-is (no transcoding) and handle any conversions itself so having a capable video decoder will help.

Extra - Playing back Atmos will depend on the client. It must be able to support Atmos. Roku does not support it, the Shield does. Also, the device these are connected to (the TV or receiver) must also support Atmos. If Atmos is not supported along the chain, then you will only hear the core audio channels and not the Atmos parts.

Thanks a lot for your reply. It helps greatly to aid in my understanding of what’s happening. So, it sounds like if there’s an issue, it’s with transcoding. Is it correct to say that Plex on the Shield tells the CPU when and what to transcode, or does the Shield do that with it’s own chip?

My pc is an i9-12900k 3.2 GHz on an MSI PRO Z690-A with 32 Gb RAM. The gpu is an RTX-2080 ti. It has 10 Gb of onboard RAM. So, neither one is any longer at the apex of performance, but should hopefully still be adequate? Or not?
Is there some way of monitoring what the cpu and/or gpu are doing when a movie is playing. Looking to see if it does, in fact, max out.

Also then, is their some way of knowing if the file that’s playing has been down coded or is any quality than original? Is there a setting forcing it to remain? I do have Direct Play enabled.

Does hardware transcoding occur as needed or is it enabled in settings?

Is limiting bitrate generally thought to be desirable? Also done in settings I assume.

I’m fortunate in having 500 Mbps service with fibre. However, I’m not so much concerned with the quality or bitrate other family members are getting from streaming as I am in house.

Buffering issues are most often caused by transcoding or network/internet speeds, but not always. You really need to look at logs and other things to identify.

The Shield will tell your server if transcoding is needed or not. Some things the Shield can do itself like HDR → SDR conversion, but it depends on the specific file and codecs involved. There is no 1 answer to the question.

Is there some way of monitoring what the cpu and/or gpu are doing when a movie is playing. Looking to see if it does, in fact, max out.

The Plex Dashboard will show you the cpu load. If it is performing hardware transcoding with your graphics 2080 you’ll need to check Windows Resource Monitor for that.

Also then, is their some way of knowing if the file that’s playing has been down coded or is any quality than original? Is there a setting forcing it to remain? I do have Direct Play enabled.

Again, the Plex Dashboard will tell you what’s going on. You cannot force it to not transcode, except on the Roku. That has a setting to force direct play, but that doesn’t mean it will work.

Does hardware transcoding occur as needed or is it enabled in settings?

There is a setting on your server to enable this. Once enabled, your server will attempt to use hardware all the time, but will switch back to the cpu if there is an issue.

Is limiting bitrate generally thought to be desirable? Also done in settings I assume.

Most people will say no. Limiting the bitrate will force a transcode if the file’s bitrate is higher than what you set. Some people hate transcoding for any reason.

I’m not so much concerned with the quality or bitrate other family members are getting from streaming as I am in house.

Ok, if you are only accessing your server from inside the house then your internet speeds won’t really affect anything. In this case, transcoding is most likely the cause of any buffering issues.

One of the confusing things about Plex is the clients and servers all have slightly different capabilities. The cool and unusual thing about the Shield client is, like @anon18523487 said, is it can do HDR to SDR “tone mapping” itself. Normally this is an intense server operation. The Shield is generally regarded as a very good client device.

Depending on exactly what you want to do, you may find a Linux server works better for you.

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