Adaptive bitrate considerations

Hi there. I am workign with MS on daily basis, and willing to contribute somehow, looking for small starting points, and now my work have an intersection, with something that might be usefull and end up as MR. The current mechanism for bandiwdth distribution is layer seleciton that is taking place on BWE updates and taiking prios into account, but what i was thinking to add a possibility to additionlay pause least important video producers on bwe down and resume on up. I was thinking about passing through bwe events on transport (not via trace), but with throttling, and most important to do not pass raw values of availableOutgoingBitrate from rtcp feedback, but doing something similar that you are doing with score calculation, like keeping ringbuffer of last n samples of reported BWE and doing EWMA based on thouse values, this will help to don’t over\under provision bandwidth. The next step is to mix this logic with dominant speaker detection. So i have two questions, should i do this as contribution, or keep it in fork and don’t bother you. Second, in case of positive answer on first, what are your thoughts about pausing and resuming producers also in MS code, or this should only happen in js userland? Or everything of the mentioned should happen in JS land? Because from my expirience, calculating EWMA within JS land on rate they are emmited takes way to much computation power.

We are gonna refactor and build from scratch everything related to BWE, although there is no ETA.

1 Like