What should I do for bandwidth estimation for video conference

146 Views Asked by At

I have been trying to create video conferencing app as a hobby. I dont use webRTC video tracks instead I transfer three stream of video recorded in 100000, 400000 and 800000 bitrate of vp8 video data from media recorder and transfer only the simpleBlock and timecode data in the datachannel. With this I can get the key frames and adapt video quality based on the bandwidth. We do have a working app and we regularly chat on it.

However I dont have concrete solution to bandwidth estimation just to make sure I can avoid lagging and congestion. Currently I just calculate the time difference to estimate lags and then switch the video but with this I see my video switch to multiple quality a lot.

I also tried to do something like Shaka player but I dont know how can I calcuate the frame rate that is being received as I have simple blocks and timecode only.

What should I do for bandwidht estimation?

1

There are 1 best solutions below

0
Evgeny Melnikov On

You can try to implement MOS (Mean Opinion Score) algorithm in your app to use it's values for bandwidth switching. I had been creating a WebRTC video conferencing application and needed to identify the connection / network quality. This open source JS / TS library webrtc-issue-detector helped to analyse the report and to trigger errors related to existing issues, moreover - calculate MOS. You can check the implementation of MOS algorithm in the code.