@mtehonica said:
@an3k said:
Maybe just a “Upstream Bandwidth” and “Downstream Bandwidth” field into which the admin enters the actual values.
Example: My Upstream Bandwidth is 6 Mbps. An external user sets the Quality setting to 5 Mbps 1080p.
If he is the only user who is watching he gets a 5 Mbps stream (because of HIS limitation). If he sets it to 20 Mbps 1080p he gets a 6 Mbps stream (because of MY limitation). Now if another external user starts streaming both users get a 3 Mbps stream. However, if the second user has set Quality to 2 Mbps 720p the first user gets 4 Mbps and the second user gets 2 Mbps.
I like this general idea and I agree that this is much needed but I think this is the perfect example of an “easier said than done” feature request. I think the Plex team will definitely get it done but there are a lot of variables to take into account.
What if you are traveling and you want the best streaming access and not to have to compete with your other users? Do you allow “priority” users? What if enough priority users saturate the upstream bandwidth? Do they all get throttled, including you?
@mtehonica had a great idea:
I do agree there are a lot of variables, but with the inclusion of quotas (max plays/duration on a per user basis) and temporary revocation of "non-admin" users with bandwidth limitations this could be handled.
Are there any limitations to what can be throttled and not? Can you throttle direct streams or only transcoded streams? What if the Plex server admin has “optimized versions” enabled? Do you still throttle those?
Throttling should not be based on content but user. If you want to Direct Stream but it’s always buffering what do you do? Manually selecting a lower quality and thus your Direct Stream turns into a Transcoded Stream. And let us just ignore the Optimized Versions for now. This is a really great feature but not usable yet (Optimize in 4 Mbps 1080p and still, everything gets transcoded because there is no matching client-side setting).
What if there is upstream bandwidth contention because of something outside of Plex? How do you detect and throttle based on it?
Then you have to do exactly the same as you have to do now. Manually select a lower quality. However, this can be solved within Plex automatically but it’s a completely different topic. (Netflix, Hulu, Amazon, etc. automatically adjust the resolution and bandwidth based on your actual connection speed. It’s not difficult to implement, especially because you have to use a Plex client)
I think on the surface this seems like a simple feature request, just a couple check boxes, but under the covers, there are lots of variables.
As a developer I can tell you that it’s actually plain easy to implement. I actually could do it myself if someone would send me the sourcecode
No, I’m not better than the Plex devs, in fact I don’t know any programming language but what I’m really good in is reading code, processing it like the compiled version would be and thus perfectly understand whats going on. That enables me to use present code to implement new features and/or fix bugs even if I’ve never seen the programming language before.
EDIT @mtehonica Don’t get me wrong. I really appreciate your input but I think you are thinking too far. Even if all possible problems we see are solved there is always a higher level with more problems. There is no perfect system but with such an implementation you and your users have much less trouble getting a nice stream without playing around with the settings.
Friend of mine came home at 9pm and he wants to easily play a TV Show. He has set Quality to 4 Mbps (I had to tell him - he doesn’t know my bandwidth). Ok, now he came home and starts playing but the video is buffering like hell. He tries this and that, reboots his router, is already annoyed and finally asks me. What he didn’t knew was that there was already another user using my upstream bandwidth.
“Pure hell” vs. “Smooth experience” 