Setting to increase data that is buffered ahead of time when video is paused?

Hello,

I run the Plex server on a computer at home which has all my media and it works just fine in my internal network, however I often run into issues when accessing it over the Internet. My upload speed at home is 10 Mbit/s and so it should be more than enough from streams in 720p (I normally try 720p with 3 or 4 Mbit/s) and generally it works, but I never could finish a movie without stopping and buffering about at least every 10 minutes for a few seconds which is just no fun.

What makes it even more strange is that going to a lower quality didn’t fix this either and I actually can at most locations download the files from my server with about the 10 Mbit/s.

So I wonder, when I watch a movie from my server with 720p 4 Mbit/s quality I noticed by looking at a network meter that it constantly actually streams with a about 4 Mbit/s and the player doesn’t try to load some more data ahead of time if there is still bandwidth available. This might yet make sense since you maybe don’t want it to use more but unfortunately it doesn’t continue to load some data ahead of time with 4 Mbit/s even when I pause the video, when I press pause after a few seconds no data is being loaded from my server. I found an old thread here where someone asked about a setting about where to increase the size of such data and a cache size setting was mentioned but I couldn’t find it:

https://forums.plex.tv/discussion/48635/increase-client-buffer

Does this setting still exist maybe under a different name? I travel a lot and want to watch sometimes medias I have at home on my computer and can’t carry around all the time on my work laptop and I don’t want to plan ahead about what to watch, so syncing/downloading stuff is no option but it would be perfectly fine if it would just buffer a little more ahead, even with the worst hotel WiFi signal I could watch YouTube videos in HD without any problems if I just let them load ahead a little first, just like in the good old YouTube days :wink:

@Elijah_Baley said:
https://forums.plex.tv/discussion/251430/discovery-about-buffering-and-the-transcoder-buffer#latest

Thanks, this is an interesting setting but doesn’t help in my case, this seems to be helpful especially on a local network when watching content on a high resolution and the server might have a hard time keeping up encoding. However in my case it is the maybe sometimes unstable bandwidth on public WiFi and here buffering on the server side doesn’t help, I need a setting that allows the player to do some more buffering on the clients side (I use Plex Media Player on a laptop). YouTube did this from the beginning (remember doing that all the time about 10 years ago in the early YouTube days) and even the webplayer from my local news station does that and I can watch them everywhere without any interruptions, so I find it hard to believe, that this shouldn’t be possible with Plex.

I will readily admit that I do not know all the possible clients and I do not really know much about any of the clients that would run on a remote computer BUT I think that OpenPHT might be able to be tweaked to allow a larger internal buffer. I do not think that any version of PMP has that ability.

Also you might want to look at the network settings on the client computer as there might be a way to increase the cache for internet usage.

Another thing you might want to consider is using a different Plex client like maybe a Fire TV or a Roku or a Raspberry PI. They are, except for the PI, optimized for streaming via the internet and might perform better that a computer that is trying to do other things all the time.

Thanks, just gave OpenPHT a try, in there I found the setting that was mentioned in that old post, there is a setting for cache size which is set by default to 5% and can be increased up to 30%:

However even setting it up to 30% doesn’t change anything, when start a movie in 720p 4 Mbit/s I can see in a network monitor the system loading data at about 600 KB/s and the movie plays and if I pause it after about 10 to 20 seconds the bandwidth usage drops to 0 (usage continues again when I press Play again). Even the default value 5% seems to me to be to high since the movie starts practically playing immediately and the player never even seems to want to attempt loading data more than a few seconds ahead of time just in case.

I must say that I am little shocked and disappointed that the player or better to say the whole Plex server/client ecosystem doesn’t make this a default behavior when streaming online and doesn’t even offer this as an option. When streaming a whole movie that goes at least one and half an hour you can’t expect to have a stable connection the whole time and without at least loading data ahead just in case a few minutes it is just normal that playback will stop from time to time.

Just noticed that this is indeed a requested features for years:

Can’t believe that 10 years ago already clients like YouTube were smarter already, guess for my use case it is useless right now. Does anyone has a suggestion for an alternative client/server solution that supports such a way of buffering or is there maybe another third party client for Plex that does that?

I doubt that another device like a Fire TV will fix this, I had a close look at my system when doing all these tests, there was no other bandwidth usage by other apps (no cloud syncing, no automatic updates) and used a monitoring app and I don’t want to carry yet another device around with me when traveling. Not sure about a system setting for a cache size of Internet usage, however if there is one it should be set just fine already since I can watch videos on YouTube and on many other websites without any interruptions already since they buffer ahead. Here the Plex client just needs to go on sending out requests a little longer, even when the user pauses the video.

@althena77 said:
Hello,

I run the Plex server on a computer at home which has all my media and it works just fine in my internal network, however I often run into issues when accessing it over the Internet. My upload speed at home is 10 Mbit/s and so it should be more than enough from streams in 720p (I normally try 720p with 3 or 4 Mbit/s) and generally it works, but I never could finish a movie without stopping and buffering about at least every 10 minutes for a few seconds which is just no fun.

What makes it even more strange is that going to a lower quality didn’t fix this either and I actually can at most locations download the files from my server with about the 10 Mbit/s.

So I wonder, when I watch a movie from my server with 720p 4 Mbit/s quality I noticed by looking at a network meter that it constantly actually streams with a about 4 Mbit/s and the player doesn’t try to load some more data ahead of time if there is still bandwidth available. This might yet make sense since you maybe don’t want it to use more but unfortunately it doesn’t continue to load some data ahead of time with 4 Mbit/s even when I pause the video, when I press pause after a few seconds no data is being loaded from my server. I found an old thread here where someone asked about a setting about where to increase the size of such data and a cache size setting was mentioned but I couldn’t find it:

https://forums.plex.tv/discussion/48635/increase-client-buffer

Does this setting still exist maybe under a different name? I travel a lot and want to watch sometimes medias I have at home on my computer and can’t carry around all the time on my work laptop and I don’t want to plan ahead about what to watch, so syncing/downloading stuff is no option but it would be perfectly fine if it would just buffer a little more ahead, even with the worst hotel WiFi signal I could watch YouTube videos in HD without any problems if I just let them load ahead a little first, just like in the good old YouTube days :wink:

So you have not yet mentioned if the computer you run PMS on can handle the transcoding for your remote playback.
Have you examined the logs to see if your server is keeping up with the demand?

Check the Transcoding Speed
You can find out whether this is the case by examining your Plex Media Server.log file that covers your attempt to stream.

Tip!: You'll need to temporarily enable Verbose logging (once you're done, you should disable Verbose logging).

Open up the log file and filter or search on the string speed =>. You’ll see some results along the lines of this:

Aug 19, 2015 16:45:38 [0x10d84d000] VERBOSE -  * speed => 5.5
Aug 19, 2015 16:45:39 [0x10dbd9000] VERBOSE -  * speed => 4.8
Aug 19, 2015 16:45:39 [0x1099a3000] VERBOSE -  * speed => 5.0
Aug 19, 2015 16:45:40 [0x10db56000] VERBOSE -  * speed => 5.2
Aug 19, 2015 16:45:40 [0x10dc5c000] VERBOSE -  * speed => 4.8
Aug 19, 2015 16:45:41 [0x10d84d000] VERBOSE -  * speed => 4.7
Aug 19, 2015 16:45:41 [0x10dad3000] VERBOSE -  * speed => 5.0
Aug 19, 2015 16:45:42 [0x10dc5c000] VERBOSE -  * speed => 4.8

What the values mean:

  • Exactly 1.0 - the Server is transcoding exactly in real-time
  • Greater than 1.0 - the Server is able to transcode fast enough
  • Less than 1.0 - the Server is unable to transcode fast enough

The numbers here don’t take into account some other things that will also affect things and basically cause an “overhead” in the process. In order to ensure a smooth transcode, you want to make sure that you’re seeing speed numbers 1.0 or greater. If your average is about 1.3 or greater, then transcoding speed is sufficient for what you’re trying to do.

REF: https://support.plex.tv/hc/en-us/articles/201575036-Why-is-my-video-stream-buffering-

Thanks, I just ran the Plex server a couple of minutes and did stream a video in 720p while the original file is in 1080p and had verbose logging turned on during that time. The value you mentioned in the log file is mostly between 5 and 6:

Jan 09, 2017 18:06:02.269 [0x700003c1b000] VERBOSE -  * speed => 5.7
Jan 09, 2017 18:06:02.777 [0x7000042c2000] VERBOSE -  * speed => 5.2
Jan 09, 2017 18:06:03.780 [0x700003c1b000] VERBOSE -  * speed => 5.5
Jan 09, 2017 18:06:05.871 [0x700003c1b000] VERBOSE -  * speed => 5.6
Jan 09, 2017 18:06:06.374 [0x7000042c2000] VERBOSE -  * speed => 5.5
Jan 09, 2017 18:06:06.877 [0x7000036fd000] VERBOSE -  * speed => 5.5

The machine is not a brand new computer (iMac from 2012 with a core i7 processor, I think Ivy Bridge is what the Intel architecture is called from that time) but for everything I am doing on a computer it still works just fine. However I am considering buying a NAS for accessing my files and streaming while traveling (if I can be sure that streaming really works and I know it is really worth buying).

But I guess my computer should be fast enough, I did create some optimized versions of some videos for testing inside Plex before and for a 2 hours long video in HD it took about 15 minutes?

Just out of curiosity, why doesn’t a Plex Player try to buffer some data ahead of time, I mean my upload speed at home is 10 Mbit/s and at one hotel I stay often the download speed is normally around 16 Mbit/s, so why doesn’t the player and server just use some of the unused bandwidth to buffer up a few minutes. This seems to me so basic and natural and like a feature that should be discussed on day 1 when people start to develop a streaming solution and here we are in 2017 and it is just a requested feature here for years. Then again, I am not a developer, is this maybe a big technical challenge if not implemented in the beginning and added later?