Enhanced Video Player on Apple TV 4K creating buffering issues

logging.zip (1.7 MB)
Plex Media Server Logs_2020-02-02_07-28-40.zip (5.0 MB)

Server Version#: 1.18.5.2309
Player Version#: 2.13 (14243)
Apple TV 4K tvOS#: 13.3.1

I started having an issue since 2/1 on the afternoon. Before the issues, PMS played all of my videos to my 2 Apple TV 4Ks without an issue. During the afternoon on 2/1, I rebooted my server to apply some OS updates on Windows Server 2019. Since that time, with the Enhanced Video Player feature turned on, Plex buffers at a high bandwidth (around 90 Mbps) for approx. 30 seconds. After that 30 second period, it still buffers for playback, but that buffering drops down to about 1-2 Mbps. In my tests with many different 1080p and 4K videos, this causes the play state to change to “buffering waiting”. Eventually it gets enough of the video stream to play for a few seconds, the state changes to playing, but only for a few seconds before going back to the buffering waiting state. Note that I’ve had the Enhanced Video Player enabled for at least 6 months, through multiple PMS updates.

With Enchanced Video Player ON:

Initially when this starting happening, I was attempting to troubleshoot my server, since I correlated recently installed Windows updates as the problem. I even went so far as uninstalling 3 recent Windows Updates (KB4534119, KB4532947, and KB4533013, in case you’re interested), but testing Plex on Apple TV still yielding the same buffering issues.

So next I started troubleshooting from Apple TV, and within Plex I turned off the Enhanced Video Player. Here are the network results of playing the same video with Enhanced Video Player turned off:

I tested 7-8 different video files (SD, 1080p, 4K, H.264, HEVC), and with Enhanced Video Player turned off, there were no playback issues. Turning on embedded PGS subtitles will always cause the standard video player to transcode video, but my server can handle transcodes just fine, even if I prefer to not transcode.

I should also point out that I performed these tests on 2 Apple TV 4Ks within my house, on the same LAN as the server where PMS runs from, and that both ATVs are connected to the network via 1Gbps Ethernet. I did also try the same video on my Windows 10 notebook with the Plex app over wifi, with no buffering or streaming issues at all.

I’m still not sure why the timing of this issue coincides with a server reboot due to Windows Updates, but since the problem disappears when EVP is turned off on the ATVs, I don’t think the issue is with my Windows server.

Any help would be greatly appreciated. I really want to have the Enhanced Video Player enabled on my Apple TVs again.

3 Likes

Same! Forced to disable the enhanced player. Started happening 1-2 weeks ago…

My issue is very similar to this reported issue, posted only a few days before mine.

PMS updated to 1.18.6.2368 today, and still having the same issues with Enhanced Video Player turned on. Happening to anyone else?

Apple tvOS is unchanged, but there were updates to both PMS and Plex on the Apple TV 4K:
Server Version#: 1.18.7.2438
Player Version#: 2.14 (14373)
Apple TV 4K tvOS#: 13.3.1

I still have the same buffering issue as I originally posted when the Enhanced Video Player is enabled. I’ll just keep updating my thread when there’s an update until I get a resolution.

I have sinced switched to infuse. It works without any issues. I guess I have to pay a another company to use Plex without headaches…

Super weird @fcapizzo… in the logs I see the player struggling to buffer:

2020/02/02 07:06:28.717 (404 MB) (226011) đź”§ PMKMPVClient.m:493 | [cplayer] v: Enter buffering (buffer went from 100% -> 0%) [0.000000s].
2020/02/02 07:06:29.757 (404 MB) (226139) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 0% -> 8%) [0.080667s].
2020/02/02 07:06:30.011 (404 MB) (226139) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 8% -> 16%) [0.165667s].
2020/02/02 07:06:32.322 (405 MB) (226013) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 16% -> 25%) [0.251667s].
2020/02/02 07:06:34.061 (405 MB) (225847) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 25% -> 33%) [0.336667s].
2020/02/02 07:06:34.318 (405 MB) (226011) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 33% -> 42%) [0.421667s].
2020/02/02 07:06:36.125 (405 MB) (226139) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 42% -> 49%) [0.497000s].
2020/02/02 07:06:37.394 (405 MB) (226138) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 49% -> 50%) [0.500000s].
2020/02/02 07:06:39.137 (406 MB) (226138) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 50% -> 62%) [0.624667s].
2020/02/02 07:06:39.180 (406 MB) (225847) đź”§ PMKMPVClient.m:493 | [cplayer] v: Still buffering (buffer went from 62% -> 79%) [0.795667s].
2020/02/02 07:06:39.425 (409 MB) (226139) đź”§ PMKMPVVideoPlayer.m:882 | event: unpause
2020/02/02 07:06:39.425 (409 MB) (226139) đź”§ PMKMPVClient.m:493 | [cplayer] v: End buffering (waited 10.690518 secs) [1.285667s].

But I don’t see a reason for that to happen, or at least nothing to blame the Plex app, so my first suspects would be either your network setup or your server (either the machine/setup itself or Plex Media Server). I don’t think anything in your TV or in the app could cause this problem (of course, I might be wrong).

I’d recommend to try this:

  • Install a Plex Media Server with just a bunch of test files in some other machine.
  • Install an older version of Plex Media Server.
  • If you have an iOS device (iPhone or iPad), try and compare too (the code for video playback should be identical to the Apple TV app)
  • If you have a chance to test any iOS or tvOS device where you can reproduce the problem in another network (maybe install the server in a laptop and try it in some friend’s house?).
  • If you have an iOS device (iPhone or iPad), try to play those files with the EVP but from outside of your network (some wifi somewhere so you don’t burn your data plan :sweat_smile:). For this you might need to tweak the video quality for remote connections in the app settings.

Thanks for your reply. I would dismiss the network as a potential issue. Notice that when I turned off EVP on the Apple TV, buffering would very frequently spike to almost 100 Mbps, and, more importantly, I had no buffering issues. I don’t necessarily blame the Apple TV, but there is something not happening when EVP is turned on for Apple devices. When EVP is turned on, the player on the Apple TV keeps pausing because it’s not receiving enough data from PMS.

I just tried the same video with EVP turned on on an Apple iPad within my house, and the exact same buffering issue occurred. When I turn EVP off on the iPad, Plex on the iPad has enough buffer to ensure uninterrupted playback.

This tells me the issue is the server. I’d put more money on PMS being the issue, especially since we’re talking about 1 very particular issue when a feature is turned on for Apple devices only (I did mention in my first post that there were no issues playing the videos from a Windows PC running the newer Plex app). But I’m not sure where to start troubleshooting, which is why I made the post in the first place.

I will try installing PMS on my Windows notebook later this week, and test with an iPhone and iPad. I would prefer doing this than the second option of installing an older PMS on my existing server, as I really don’t want to disrupt my server too much.

FWIW I wouldn’t disregard the network issue entirely yet.

When you turn off EVP, the server transcodes the video (at least the one I see in your logs, which is a mkv file). This can potentially make things completely different: EVP can play mkv files directly, that means your whole file is streamed to the player.

However, with EVP off, the app needs your big mkv file to be transcoded, and the format used for transcoded streams goes over HLS, which means the original video is split in many small pieces (called segments) of ~10 seconds duration.

There could be an issue either on your network setup, your server, PMS, etc. that only affects HTTP connections that are open during a long period of time? I don’t know, but I don’t think it’s completely crazy something like that could happen :thinking:

Another thing you can test is using mpv from mpv.io to play the MKV file the same way the iOS and TV apps do. mpv is what our app uses under the hood for the so called EVP.

If you’re willing to test that (I’d recommend using a macOS machine because the networking stack will be more similar to iOS/tvOS), let me know and I’ll give you instructions to get the URL to the mkv file in your server like the apps do.

Hi @sergiou87. I have also been experiencing this issue. It started a few weeks ago after I upgraded my server from Windows 2012 R2 to Windows 2019. See Enhanced video player will eventually start stuttering.

I have also seen other users post similar reports, either in my thread or other threads in the AppleTV forum. In all cases the issue seemed to have started a number of weeks ago. I noticed that a lot of the reports mentioned running Windows Server 2019 so it may have something to do with that OS, a recent update for that particular OS or recent PMS update that happened to coincide with the issue.

I have not done much testing other than turning the Enhanced Video Player off which has resolved the issue on both of my wired AppleTVs.

1 Like

I have also had issues. Rebooting the AppleTV seems to clear it up.

I have the same issue with my apple TV 4K. Any solution?

I meant to get back to this issue a lot sooner, but I just haven’t had the time. First off, the only thing that has updated in the past 2 weeks is the PMS version on my server. This is the current set of versions:

Server Version#: 1.18.7.2457
Player Version#: 2.14 (14373)
Apple TV 4K tvOS#: 13.3.1

Same issues happen when EVP is turned on, and I’m no closer to figuring out the issue on my Windows Server 2019 server.

However, I did heed previous advice, and tried installing PMS on a Windows 10 notebook. With EVP turned on on the Apple TV…I do not have the buffering issue. And I was just testing playing the video file over wifi. So there is a problem somewhere with my server, but again, I don’t know where to start troubleshooting. Ideas?

3 words: “Thank you, Reddit”. OK, 3 other words: “Disable TCP Offloading”. Another user mentioned that their troubles started when they upgraded their server running PMS from Windows Server 2012 R2 to Windows Server 2019. That is exactly what I did 3 months ago. After some searching online, I stumbled on this Reddit thread where someone with the same problem had a different user respond that they resolved the issue by disabling TCP offloading on their network adapter in Windows Server 2019. No clue how that user figured it out, but I thank them profusely!

In my particular case, my server has 2 x 1Gb NICs that I configured as a NIC Team within Windows Server 2019. I had to go to properties for my Team NIC, and then I clicked Configure on Microsoft Network Adapter Multiplexor Driver. From those settings, I went to the Advanced Tab. I changed the following 3 settings, also noting how it was originally configured:

IPv4 Checksum Offload --> Disabled (was Rx & Tx Enabled)
TCP Checksum Offload --> Disabled (was Rx & Tx Enabled)
Large Send Offload Version 2 (IPv4) --> Disabled (was Enabled)

I don’t know if 1 or all 3 are required to fix the issue, but that was my first try, and it worked so I’m not going to change it for now. Hopefully this information helps others having the same issue.

2 Likes

Any update on this? I have Plex running on my synology, and about 2 weeks ago Synology released 1.18 replacing 1.16. prior to this, everything worked great on my AppleTV 4Ks. After the 1.18 update (and previously when I tried to manually update), the enhanced player fails to work. Turning it off works fine.

Seems like this is a bug in the AppleTV app…

UPDATE: Issue is actually “Burn Subtitles”. Setting to Automatic works. Setting to “Always” results in heavily corrupted video.

1 Like

Unfortunately, the issue has come up again. Things were working for about 3 days, and then some Windows Updates were downloaded, and I rebooted the server. Since that point, PMS has reverted back to the buffering issue on my WIndows 2019 server.

I tried disabling additional offload features, and I even deleted and re-created the NIC team, disabling the same 3 Offload features I previously disabled, and PMS does the same thing in regards to buffering. I may just try an individual NIC instead of this NIC team to see if that helps.

1 Like

I removed the NIC Team and just had traffic going through a single 1Gb NIC, but the buffering issue still persists. I will keep searching to resolve this issue.

Based on the Plex article Why is my video stream buffering?, I also disabled TCP receive window autotuning based on a Microsoft article. This did not resolve the issue, either.

Anecdotally, what I’m seeing from searching Google and Reddit for related issues is that there are others who are running PMS on Windows Server 2019 with Apple TV 4Ks with similar issues. There is no CPU, memory, or disk constraint. The issue lies squarely when EVP is enabled on the Plex client on Apple TV. For some reason the network stream being sent from the Windows Server goes from a very high bandwidth (~100Mb/sec) to a fairly low bandwidth (~2Mb/sec), and this low bandwidth is obviously not enough to satisfy streams that are 1080p and 4K, even though the Apple TV is using a wired connection and on the same LAN.

The next set of things I will try include putting the Apple TV 4K on wifi, and also re-collecting logs and posting them in this thread.

Thank you for sharing your detailed troubleshooting information. I am having the same problem and I haven’t been able to find a solution. It’s frustrating that Plex support is not answering.

Just thought I would add since I was experiencing the same issue with Windows Server 2019. Since I did not actually need the features of Windows Server 2019, I decided to downgrade my server to Windows 10 instead. Ever since, the buffering issue has been resolved.