I'm trying to use Jitsi videoconference as part of a webapp but we it's very unstable and its bitrate adaptation algorithms don't seem to adapt to good to network conditions. It works quite good in p2p mode when only two parties are involved and p2p is enabled. But when same two parties join conference in non p2p mode (p2p disabled in config) I can see problems immediately.
I have a very basic setup - clean installation on a vps (debian 9) without any custom settings, based on official Jitsi installation instructions. I also tried using meet.jit.si to exclude my server config and also - three-person conference is not stable.
The problem is mainly with upload - I start a meeting it works for a while (maybe 10-15 seconds) then I see 'video for <name> has been turned off to save bandwidth'. Bitrate starts with something like 1.2/2.3 Mbps, sometimes 1/1.5 Mbps and grows. Once it reach about 3 Mbps I can see the message and video is gone.
I tried several solutions - limiting resolution to 360 in config file (made it a little more stable but not as much as I'd like), limiting resolution to 180 (which failed because Jitsi still tried resolutions like 720), tried modifying code to pass b=AS:500 somewhere in the SDP handling code which also made no difference, playing with x-google-max-bitrate. All of those failed. I read some posts about limiting Jitsi bandwidth but they don't seem to have the right answer and I can see several people have asked similar questions before me.
I use chrome and simulcast is enabled.
My questions is - is there a way to modify jitsi code (because it doesn't seem to be a configuration option) to enforce hard limit on download/upload so that adaptation algorithms don't even try to play with values higher than that? I'm not even sure this is Jitsi responsible for that, maybe that's part of WebRTC technology stack itself and is out of Jitsi control.