2025-06-10, 09:11 PM
Hey guys!
Sadly it looks like it will take another year until we finally get fiber here and for the time being I am stuck with 50 MBits upload. Since I only have 2-3 users outside of my LAN and not too much concurrent use, limiting their upload to 20 MBits has been working fine but thinking about ways to make the most of what I got I came up with this concept and I would appreciate some input for the jellyfin side of things (API possibilities, etc.):
So my plan is to build a node or python daemon that basically has 2 main components.
1. Talk to openWRT:
Keep asking the openWRT router about the demand for upload bandwidth outside of Jellyfin and if I am super motivated, it might dynamically change SQM settings.
2. Talk to Jellyfin:
Keep asking Jellyfin how many users are streaming outside of the LAN and dynamically limits upload bandwidth for each remote user.
This way a single streaming user can have 100% of the bandwidth as long as there is no other demand for it. When a second remote user starts streaming, both get an equal share of the bandwidth and when there is high priority demand from my office PC I can still ensure that both remote clients still have a good minimum share of the cake to stream their stuff.
This way the upload bandwidth I have available is always utilized as good as possible and my users get the best possible quality all the time, only getting throttled when actually needed.
I would really appreciate every bit of input:
Sadly it looks like it will take another year until we finally get fiber here and for the time being I am stuck with 50 MBits upload. Since I only have 2-3 users outside of my LAN and not too much concurrent use, limiting their upload to 20 MBits has been working fine but thinking about ways to make the most of what I got I came up with this concept and I would appreciate some input for the jellyfin side of things (API possibilities, etc.):
So my plan is to build a node or python daemon that basically has 2 main components.
1. Talk to openWRT:
Keep asking the openWRT router about the demand for upload bandwidth outside of Jellyfin and if I am super motivated, it might dynamically change SQM settings.
2. Talk to Jellyfin:
Keep asking Jellyfin how many users are streaming outside of the LAN and dynamically limits upload bandwidth for each remote user.
This way a single streaming user can have 100% of the bandwidth as long as there is no other demand for it. When a second remote user starts streaming, both get an equal share of the bandwidth and when there is high priority demand from my office PC I can still ensure that both remote clients still have a good minimum share of the cake to stream their stuff.
This way the upload bandwidth I have available is always utilized as good as possible and my users get the best possible quality all the time, only getting throttled when actually needed.
I would really appreciate every bit of input:
- Does something similar already exist?
- What do you think about this idea/approach?
- Is there some kind of dynamic bandwidth allocation already implemented in Jellyfin or only the static limit?
- Is there anything speaking against this idea?
- Does the API already support getting the info from Jellyfin (amount of remote users currently streaming) and updating the bandwidth limits for each user?
- I could build a version that skips the openWRT implementation so it only allocates bandwidth dynamically based on a set value and therefor can be used by everyone. Do you think there is enough demand for a feature like this?