New Plex Server - 4k steaming - 12vCPU at 100%

Server Version#: 1.18.7.2457
Player Version#: unknown; Google Chrome & Amazon Fire Stick App
Hello all,
I’m sure this is not the first nor last time that the you’ll be asked for help with 4k streaming but I can’t see to find a resolution to my issue. While I was originally running my plex server form a QNAP t253Be, I quickly found out it will struggle with anything over 1080p. I built a new windows 10 machine in Vmware that currently has 12vCPU @ 2.39Ghz and 4GB ram but I still cannot get more than 5 minutes into a movie without it buffering or degrading in quality. While I can continue to up the resources, I feel that 12vCPU should be enough. I’m starting to think this is more of a configuration issue than hardware issue.

This is my first Plex server so I do not know all the terminology. Based on a few of the other threads that I’ve read, I believe these are some of the basic questions that are asked.

  1. The file type that I am trying to view is MKV (is that bad?).
  2. Language is English (native) with no subtitles.
  3. Network connection is 1Gb hardwired.
  4. configuration is out of the box stock.
  5. Library is stored on the mentioned NAS (QNAP) which has a 1GB connection.
  6. Overall bandwidth utilization on the QNAP, Plex Server and streaming computer is low. I don’t believe there to be a bottleneck with the network (all local).

I’m happy to pull logs, configs etc. Just need to know what you want. I am currently trying to “optimize” one of the test videos to see if that helps. If MKV happens to be a “bad” or “not ideal” file type, what do you recommend I stay with?

“MKV” is a container and says nothing about how the video or the audio were encoded.

You want your 4K video to be “direct play” or “direct stream” whenever possible to avoid transcoding on the fly.

You’ll find this support article informative I think:

Can you post the XML information of your 4K video?

I’m currently reading the post you linked but attached is the XML you asked for. Example.txt (36.4 KB)

See Streaming Media: Direct Play and Direct Stream for additional information on Direct Play, Direct Stream, and Transcoding.

If your client does not support the video format of the movie, then Plex must transcode it to a supported format. This process is very CPU intensive. When somebody says, “My CPU is at 100%…” it is almost always due to video transcoding. Audio may also be transcoded, but it is not nearly as CPU intensive as video transcoding.

Regarding Chrome:

Chrome does not support HEVC video. When you play a HEVC/H.265 video in Chrome, Plex will transcode it to AVC/H.264. That is why your CPU goes to 100%.

Regarding the FireTV stick:

The same thing is probably happening with the FireTV stick (given that your CPU is at 100%).

Do you know the specific FireTV stick model? There are many and not all of them support 4K, HDR, or HEVC video.

Play the movie using the FireStick. During playback, go to the Plex Dashboard using your laptop/desktop and check the status in Now Playing. It will show if the video is transcoding, direct playing, etc.

Use Plex Web -> Activity -> Now Playing. Use the toggle button on the right to expand the view if necessary.

Please attach a screenshot to the thread (see Princess Bride example below).

This will show if either the video or audio is transcoding.

Screen-Shot-2018-12-18-at-5.23.55-PM-250x300

1 Like

While fooling around with some settings, I came across the “optimize” feature within Plex and selected the movie in question to be optimized for TV. Today when I walked through the test FordGuy61 suggest, I came across the following results. It would appear that you are all correct in that both the FireStick (4k) and Chrome browser are trying to transcode the video when I try to play the original copy. When I play the copy that was optimized, it runs as “direct stream” with no buffering..I can actually fast forward as well! If this all works, I would believe that I could go back to hosting Plex from my QNAP as we only have a single device streaming at once.

The question then becomes what is the best practice here?

  • Should I just optimize my entire library or only movies that I see have issues?
    • I found this article that states how to automatically keep a library optimized. Is this recommended? I see a lot of people using Handbrake, why?
    • is there anyway to detect which ones might have an issue? Since the “optimize” feature takes over an hour, I’d prefer to do this prior to watching an movie and finding out the hard way.
      • Is it safe to assume that if the files can already be played via Direct Play that it will be skipped? If not, the optimize should take care of this.
  • Can this be automated somehow and if so, is there a way to do so that doesn’t duplicate data?
    • I noticed that the optimized version, while smaller, is within a folder of the original.
  • Can I optimize the files using my overpowered VMGuest and then have them detected/played on the NAS?
    • I noticed the version paths are being referenced by what server created them. The qnap has local linux paths while the PlexServer has windows paths. It should all be the same, no?
    • I figure I can select my entire library to have it optimized, let that VM machine chew through everything and then power it down until its needed again. The QNAP can then host my Plex and optimize any Net new movies without killing its small CPU.

Screenshots as per request. Please note that “NAS3A82D7” is the original QNAP mentioned earlier and “PlexServer” is the VMGuest. Both have the same Network connection and are pointing to the same storage device (qnap).The optimized version is part of the database on the “PlexServer” VMGuest.

PS. I apologize for the low quality of the screenshots as they were taken from my tablet.

Thanks for the updated information.

You may be running into a problem with the AndroidTV app.

There are many reports on the forum with people having trouble with the FireStick 4K (some linked below). It transcodes when it should direct play.

Per this thread, it seems v7.30 fixes the problem. However, it is still beta and not yet available via Amazon (currently v7.28.0).

It seems you have two options: 1) Wait for the fixed version to become available via Amazon; or 2) sideload the beta version and see if it works. Note that the Amazon store version always lags the Google Play version, sometimes by several weeks. This is due to Amazon release processes. Do not sideload the Google version on your FireTV. It won’t hurt anything, but it is built differently and will probably be unstable.

The beta version is available via the Android TV Beta Announcement thread. The thread says Plex Pass required, but I was able to download the Amazon FireOS Devices version (the one you would want) using a non Plex Pass login.

There is a possible third option: Fall back to a working version of the app, probably a 7.27 release. Scan the below threads and see if anybody mentions an earlier, working version. You could then download it from the announcement thread and sideload it to your FireTV (if the download links have not expired).

Sideloading apps on the FireStick is straightforward. Google “sideload firestick” or similar to find instructions. If I remember correctly, you set the FireStick to allow unauthorized apps (somewhere in FireStick settings). Then use the Downloader app to download and install the beta version.

Regarding Optimized Versions and 4K HDR video: Don’t.

You can do it. However, you may not like the results.

Plex transcodes all video to H.264 SDR (Standard Dynamic Range). At this time, Plex does not tonemap the 10-bit HDR picture to 8-bit SDR. As a result, the colors usually appear washed out and the video quality is quite poor.

Optimizing HEVC SDR or H.264 SDR is not a problem as the source and destination are both 8-bit video.

[INFO] Plex, 4K Transcoding and You; AKA The Rules of 4K is a long thread, but has some good information regarding 4K video and Plex.



2 Likes

I’m going to look into the side loading option as that would seem like the quick and easiest solution here but is there anyway that I can test this theory from my PC? While the web player night not support direct play, is there a plex app or player that I can use for PC? Does VLC do this? As silly as this sounds, I’m more comfortable messing around with PC then I am the fire stick. I have multiple backups and can rebuild my PC with each where as if I mess up that fire stick, I’ll have to answer to the boss lady as to why she can’t watch her shows :confused: . If not, I’ll look into everything tomorrow and test it out.

First, one comment I forgot about sideloading: If you sideload, you’re on a manual process for future updates. The app won’t auto-update, etc like apps loaded from the Amazon app store. Also, you won’t be notified in the FireStick settings that an update is available. To get back to the “regular” update process just delete the app and re-install from the app store. Not a big deal. Just wanted to make you aware of it.

Regarding Plex Windows / Macintosh native applications:

Try Plex Media Player, PMP, or Plex for Windows/Mac.

Both direct play 4K HEVC video, even when using a 1080p display (on my Windows 10 PC, not sure about Mac). They also direct play many more audio codecs than Plex Web.

Plex for Win/Mac looks/acts very close to Plex Web. It is a replacement for the discontinued Windows store Plex app.

PMP is oriented towards HTPC users. It can bitstream audio such as TrueHD and dts-HD to receivers/soundbars/etc (connect HDMI output of video card to your receiver/etc). To use the HTPC features, put the application into “TV Mode” by clicking on the TV icon (box with “TV” inside it, upper right near Settings, Activity, etc). Then click on your your username and choose Settings. See support doc below for detailed info.

Thank you for your assistance as everything is now working. I went ahead and side loaded the latest beta build to which everything is streaming as direct play from my Qnap…which I’ll remind everyone has a lot lower specs than the VMGuest I built.

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