Server Version#: 1.21.2.3943
Player Version#: 4.51.1 web, 1.27.2.1599-7689068b Plex for Windows, 2.58.0.1076-38e019da Plex Media Player
The Setup
Machine Hardware
Dual Xeon X5680
96gb RAM
5x7200RPM SATA drives
1xSATA SSD
Server Setup
Plex Server is a Docker image (plexinc/pms-docker) in unRAID and bound to Core 11/HT 23 with some obscene amount of RAM available to it
The docker image is running unprivileged, network type is Host, and is fully accessible in my network.
Video transcoding is DISABLED
Player Setup all software is the latest available version as of this writing
Windows 10 20H2 running on unRAID
CPU1 thru 4, HT 13-16 isolated and allocated – basically, this is a quad core hyperthreaded 3.33ghz Xeon machine
12gb RAM
nVidia GTX1650 4gb passed through to VM
HDMI connection to LG C9 65" OLED panel
60gb drive bound to SATA SSD
Plex Media Player
Plex for Windows
Chrome
OpenPHT
VLC
VirtIO drivers v0.1.190
The Media
Video Codec - h264
Video Bitrate - 25910 kbps
Video Bit Depth - 8
Video Chroma Subsampling - 4:2:0
Video Resolution - 3840x2160 (4K)
Video Container - mkv
Video Frame Rate - 24p
Video Profile - high
Video Level - 5.1
Audio Codec - eac3
Audio Channels - 6
Audio Bitrate - 640 kbps
Audio Channel Layout - 5.1(side)
Audio Sampling Rate - 48000 Hz
Subtitle tracks - 26, spanning languages that use alphabet, logograph, abjad based writing systems
The Problem
Using Plex Media Player or Plex for Windows on this media results in video stuttering that worsens the longer the media is streamed. Seeking seems to accelerate this curve.
Video will freeze for 0.5 to 2.5 seconds as often as every 20 seconds, however the audio stream remains absolutely perfect.
Plex Media Player, in TV mode or desktop mode, is the worst of all the options. The video stuttering happens sooner and more often. The audio is fine.
Plex for Windows is slightly better, I can get through about 15 minutes of media before it becomes bad enough where I can’t stand watching anymore.
Plex Web through Chrome plays absolutely perfectly, but the audio is downmixed to 2.0 and that’s not acceptable for my use case.
OpenPHT, a Kodi/XBMC-esque player for Plex collections, plays flawlessly in every regard.
VLC pointed directly at the media file also plays flawlessly in every regard.
Plex Media Player setup-
- all video quality options set to ‘Original’
- Hardware Decoding set to “enabled” – disabling this changes nothing other than the GPU usage for video decoding flatlines.
- Network Cache set to Large (150 MB)
- Sync Mode set to “Audio”
- Allow Direct Play and Direct Steam are checked
- Native OpenGL is disabled, haven’t tried enabling this yet
Plex for Windows settings:
- Advertise as Player disabled
- Home Streaming video quality set to Maximum (also tried “use recommended settings”, no change)
- Direct Play and Direct Steam enabled
- Video “use hardware decoding” enabled – turning this off changes nothing except the GPU video decoding usage flatlines, just like with PMP
Plex Web settings – didn’t change anything, just logged in and hit play. No problems other than a lack of support for more than 2 channel audio.
OpenPHT and VLC settings are out-of-box, save for a couple of UI changes in OpenPHT (enable mouse usage and the like).
As an aside, my LG C9 TV can have Plex installed on it. I did this, streamed the media in question, and it was absolutely flawless. 5.1 audio, no frame skipping, nothing.
In all situations where consuming media from Plex Server is happening, the dashboard lists the stream as Direct, including with the TV (which I thought was neat!).
So the only conclusion I can come up with is that Plex Media Player and Plex for Windows are to blame. I’ve tried disabling all the settings I can find for server broadcasting, finding players, etc. to try to reduce this to no avail. CPU, GPU, HDD, and RAM usage on the Windows machine while playing media are all at extremely acceptable levels – no CPU core is over 20%, GPU peaks around 45%, RAM usage is less than 40%, HDD usage is almost nonexistent.
I’m convinced it’s not an issue with Plex Server, as the CPU usage is sub-10% on the allocated cores, which are shared with another Docker image. It’s just streaming the data after all. The only thing I demand from Plex is library management.
I’m relatively convinced it’s not a performance problem with the Windows VM as high resolution and high framerate YouTube videos render flawlessly, VLC and OpenPHT play the media in question flawlessly, and even Plex Web in Chrome plays the video flawlessly. I say “relatively convinced” because on my bare-metal Windows machine I do not have these problems, but at a hardware level it’s apples to oranges. Additionally, people make gaming machines out of unRAID virtual machines – my gear isn’t gamer grade there, but it’s wildly overspecced for doing something as basic as decoding 30mbps h264 video.
Any insight as to how I can get PMP or Plex for Windows working? For now, OpenPHT is working decently enough, and also offers the XMBX/Kodi experience I’m familiar with, but the fact that the native Plex player doesn’t work properly is concerning.
