Excessive Buffering on Remote Streams

Server Version#: 1.42.2.10156
Player Version#: Multiple (Tested with Web/Android/Roku/Chromecast)

Hey Plex Forums,

For the past 4-5 days, my buffering on remote streams seems to have gotten worse and worse and I can’t seem to pin down the cause. It is at the point where I can’t even stream at 480p, more time is spent buffering than actually streaming. I have restarted I think everything in my house and tweaked a lot of random settings, but I am stumped on the problem and could use some direction because I am stumped on where to go from here.

I’ve tested on Android, Web, Roku, and Chromecast.

Network Speeds still look fine to me and any speedtest I run seems to report good results. No other network issues, and if I VPN to my home network from another network, I get almost no buffering and mostly uninterrupted playback. This part is where I lost almost all of my ideas.

Relay doesn’t seem to be being used and port forwarding looks like its working from the logs I’ve seen. We do have external IP addresses on the remote connections in the logs.

The most interesting error I see in the logs is like these:

[HttpClient/HCl#2c0] HTTP error requesting GET https://(my external IP and some alphanumerics).plex.direct:32400/identity (7, Couldn’t connect to server) (Failed to connect to (my external IP and some alphanumerics).plex.direct port 32400 after 0 ms: Couldn’t connect to server)

But, these are sporadic and don’t seem to coincide directly with every or even most buffering attempts.

Anyone here have any ideas on where I should look next? Would love some ideas.

Check the Remote Access

If you have Relay enabled, and the port forwarding is not working , you’ll get crappy remote access due to the 2 Mbps limit for Indirect streaming.

Checking your DEBUG logs, 2-3 minutes after restart, you can search for reachability . If the results of the test are :0 then the port is closed. If :1 then the port is open (it’s reachable) .. boolean true-false answer

Yeah, I mentioned that in my post. I checked the logs for relay and we are not using it, streams are going direct to the external ip addresses. Remote Access is also all green though.

Going through the obvious ..

  1. Upload requirement exceeding what you can send upstream?
  2. Upload limits (server setting) on streaming but client apps still wanting more?

Can you share the Debug logs of the start of one session which wll buffer / stutter?

I just did another speedtest just now… We’ve got 431.95 down and 40.07 up and we’re trying to stream a 480p file. I feel like we’re well within our limits, but I do agree that it sounds like this should be a bandwidth issue.

I’ve tweaked the server settings up and down to see what happens, I currently have ‘Limit remote stream bitrate’ set to 3 mbps because I figured lower would be better for usability. The file I’m testing with right now looks like this though, it looks nowhere close:

Plex for Android (Mobile) — Pixel 8

Playing—11:41 / 45:31

Remote (174.202.64.20)—1014 Kbps

It’s weird that it thinks it’s playing and time is counting, but on the client end it is definitely buffering and has been for awhile. I can see the debug logs in the console, but can’t seem to find an export button anywhere. Any chance you can help me with locations on these specific logs in linux?

Remember, you also have to account for the point-to-point latency.

Do you have an iperf3 server on your machine? (iperf3 -s is server mode)

If not, I’d install it and set it up to always run.

This way, when client apps are having difficulty, they can run the iperf3
(iperf3 -c wan.ip.of.server) in both normal and -R mode to test point-to-point in both directions.

Speedtests are often rigged. Iperf3 give you the No-S*** true answer.
it will also show you how many packets are lost due to retransmits.

I’ve only got an android on LTE to test with this late, iperf3 app is weird, but, this is what I’m getting. Feel like this should accomplish the same thing as -R/etc:

iPerf3 app on Android set to upload:

Accepted connection from 174.202.64.20, port 2360
[ 5] local 192.168.1.161 port 5201 connected to 174.202.64.20 port 2356
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 411 KBytes 3.36 Mbits/sec
[ 5] 1.00-2.00 sec 3.28 MBytes 27.5 Mbits/sec
[ 5] 2.00-3.00 sec 4.20 MBytes 35.3 Mbits/sec
[ 5] 3.00-4.00 sec 5.73 MBytes 48.1 Mbits/sec
[ 5] 4.00-5.00 sec 6.22 MBytes 52.2 Mbits/sec
[ 5] 5.00-6.00 sec 7.04 MBytes 59.0 Mbits/sec
[ 5] 6.00-7.00 sec 6.45 MBytes 54.1 Mbits/sec
[ 5] 7.00-8.00 sec 5.07 MBytes 42.5 Mbits/sec
[ 5] 8.00-9.00 sec 4.38 MBytes 36.8 Mbits/sec
[ 5] 9.00-10.00 sec 4.20 MBytes 35.3 Mbits/sec
[ 5] 10.00-10.36 sec 1.59 MBytes 37.0 Mbits/sec


[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.36 sec 48.6 MBytes 39.3 Mbits/sec receiver

iPerf3 app on Android set to download:

Accepted connection from 174.202.64.20, port 2347
[ 5] local 192.168.1.161 port 5201 connected to 174.202.64.20 port 2355
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 199 KBytes 1.63 Mbits/sec 4 14.6 KBytes
[ 5] 1.00-2.00 sec 96.7 KBytes 792 Kbits/sec 0 18.5 KBytes
[ 5] 2.00-3.00 sec 109 KBytes 890 Kbits/sec 4 9.27 KBytes
[ 5] 3.00-4.00 sec 84.8 KBytes 694 Kbits/sec 0 13.2 KBytes
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 3 13.2 KBytes
[ 5] 5.00-6.00 sec 94.0 KBytes 770 Kbits/sec 8 6.62 KBytes
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 6 2.65 KBytes
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 1 1.32 KBytes
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 3 2.65 KBytes
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 2 2.65 KBytes
[ 5] 10.00-10.16 sec 0.00 Bytes 0.00 bits/sec 2 2.65 KBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.16 sec 583 KBytes 470 Kbits/sec 33 sender

That’s pretty bad (unless you’re only streaming low qual MP3 audio)

What happens if you turn off your phone’s wifi and repeat the test to your server?

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