Adaptive Bitrate streaming ? #1343
-
Does SIPSorcery have an implementation for adjusting the quality of the video that is sent through a peer connection based on the receiver's available bandwidth? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Short answer, no, it doesn't. That being said there is now a starting point thanks to @ispysoftware and his recent TWCC RTCP work. It seeks to implement the Transport Wide Congestion Control draft RFC. That could help to identify and feeback congestion information. On top of that you'd need to be able to use the congestion info to adjust the video codec bitrate and AFAIK there hasn't been awork done in that area yet. |
Beta Was this translation helpful? Give feedback.
-
I've built an adaptive bitrate system for my application - it seems to be working well. It involves referencing sipsorcery net from sipsorcery ffmpeg to access the TWCC parts. If you want me to do a pull request for this let me know. It adjusts framerate and bitrate according to network conditions. I haven't actually tested these code changes as i just copied the important bits over from my other project. sipsorcery-org/SIPSorceryMedia.FFmpeg@master...ispysoftware:SIPSorceryMedia.FFmpeg:TWCC |
Beta Was this translation helpful? Give feedback.
This looks really interesting and is a regularly asked for enhancement. What would make your great work easier to incorporate would be:
In the FFmpegVideoEncoder class making your new feedback mechanism opt in. Behind an optional constructor parameter for example. That helps reduce the chances of it breaking any existing implementations but still gives devs the option to switch it on.
The coupling from SIPSorceryMedia.FFmpeg back ot the main SIPSorcery library is a problem. It seems like the main logic of TWCCBitrateController could live in the main SIPSorcery library and the FFmpeg specific bits could go behind a new common interface in SIPSorceryMedia.FFmpeg.
Thanks again for this…