Better internet streaming using multiple parallel connections (or threads)

Basic Summary
I get buffering when streaming higher qualities over the internet even though my internet connection should be able to handle it. Especially when I am far away (geographically) from my server. This feature would ensure internet streaming is maxing out your connection and allow streaming the highest quality possible. This would also help if your ISP (such as Comcast) tries to throttle your streaming by bypassing their per-connection speed limits.

If you are familiar with download accelerators like Internet Download Manager (using multiple connections to speed up your downloads), this works in much the same way but for streaming.

Detailed Explanation

I have a server in Germany hosting my Plex content with a 1Gbps uplink. My connection at home is capable of 100Mbps down, however I live in Australia so there is quite a bit of latency (~300ms) between me and my server. I can stream up to 20Mbps, but anything above that needs to buffer every few seconds. This bothered me as my home connection is definitely able to handle more than that, and I would eventually like to stream UHD 4K.

I am by no means a networking expert but after doing some research I believe this is due to the extreme latency between me and my server. What I do know for certain is that multiple connections increase my download speeds significantly. In the screenshots below I am using Internet Download Manager (IDM) to download a movie from my library using a download link generated by Plex. You will see using 8 threads (~10MB/s) gives an almost linear increase in speed over 1 thread (~1.5MB/s). I also used iperf3 to test my connection which gave very similar results.

This post goes over this issue in depth and “Bandwidth Delay Product” seems to be what I’m running into. I tried the advice in that post and increased my TCP window size, but that had no noticeable impact. The only other solution suggested is using multiple parallel streams.

Which brings me to the feature being requested: Multiple parallel connections for internet streaming. This paper proposes an algorithm for how it could be done but I’ll admit it goes a bit over my head. I also came across jspeedstreamer which claims to do exactly that. But it would be much nicer if Plex did this natively as I’m sure I’m not the only one with this problem. This feature would also get around some other problems I’ve seen other people having such as ISP throttling.

Here are some relevant posts I’ve come across:

Thank you for reading and as I said, I am no expert so if anyone has any suggestions or corrections please let me know.

IDM using 1 thread (~1.5MB/s)
screenshot of IDM using 1 thread

IDM using 8 threads (~10MB/s)
screenshot of IDM using 8 threads

iperf3 using 1 connection (~5Mbps)
screenshot of iperf using 1 connection

iperf3 using 5 parallel connections (~25Mbps)
screenshot of iperf using 5 connections

This essentially the same thing people do with FTP programs like CuteFTP or lftp to speed up their transfers. Makes sense that it would have the same benefit with Plex.

It would also bypass the thing where people have to use a VPS or Cloudflare as proxies in order to make Plex usable in the States with many European server companies.

1 Like

Would definitely be great if something like this could be implemented as I’m stuck routing from my EU server (PMS installed) through a local VPS to stream over 480p.

1 Like

I know this is an old post, but I don’t think a new topic is warranted.

So, as time passed, and now that we got like a new mobile player and all… would it be possible to implement this? Like I realize the encoder does the job, and the server pushes the stream OR the file gets directly pushed.

But couldn’t you just run TWO encoder streams, OR push two pieces of the files?
Problem is: Most ISPs, even today, offer very limited international bandwidth that results in lot of buffering/stuttering. This feature would solve all of that.

+1. I just came here to ask for this very thing. To get the most out of many internet connections multiple parallel connections must be used.

1 Like

Bump.
Absolutely needed.
If I have one connection? About 10-15mbps to my server.
If I have parallel connections? 1gbps easily maxed out.

1 Like

Please guys bring this update!!! we need parallel streaming so badly!!!

This could be greate of is implemented

1 Like

Please tell me somebody is working on this. This would be a game changer.

1 Like

I’d like to +1 this. Together with the possibility of adding http2, it could be a very nice addition… But I don’t see it happening any time soon, if at all…

1 Like

+1, really need this feature. I have ~50Mbps upload bandwidth but plex usually only uses ~10Mbps, so I have to watch only medium quality 1080p…

1 Like

Will be great. I have cable 120 Mbps, but it is 8x15 Mbps streames, so I am forced to transcode movies to 10-12 Mbps instead of direct streaming.

1 Like

So that they don`t close this beautiful thread
Please consider developing multiple connections for Plex. Can´t stream any 4k/quality FullHD over online streaming. But the hardware is sufficient for the past few years. So please make the software even more worthy and bring this feature. I would say not even feature anymore but a basic function nowadays.

1 Like

Has there ever been any information from a plex dev on this topic?

@eveasin I asked the Team specifically via Facebook, but they replied:
“We don’t discuss our specific future plans, sorry.”

As 4K is becoming more relevant, this feature could be nice for users with slower internet, so that they wont be forced to upgrade their bandwidth just to get those last 10 mbit (that they most likely already had)

Great idea, love to see it happen.

Everyone is waiting for something to be done about this problem.

@DaveBinM

Do you know if this is something of interest to Plex ? - I know you can’t comment on If, how and when, but it would be nice to know if Plex sees this as an improvement worth investigating at some point!

With media files getting way bigger, it could be awesome to increase download speeds by using parallel connections as that is really the only way to fully utilize a connection

Could some sort of commercial VPN service make the connection better?