This blog post will introduce you to the newest XSplit Broadcaster V2 feature, adaptive bitrate!
Adaptive Bitrate is a new feature in XSplit Broadcaster 2.4+ available for CBR streams (currently only for x264 codec). If enabled, the bitrate will automatically change when network conditions fluctuate. For example if your upstream bandwidth changes midstream, XSplit Broadcaster will try to match the current available upstream bandwidth to prevent constant frame drops, and if more bandwidth becomes available later, then the system will readjust to target your set CBR bitrate.
Hopefully this feature will be able to address bandwidth fluctuation problems often experienced by user on ADSL connections.
What does it mean to “drop frames”?
When the bitrate output by the encoder is higher than your actual upstream bandwidth, frame dropping is a common known technique to temporarily lower the bitrate and avoid building up a long queue/delay. In technical terms we often talk about dropping frames before or after the encoder. If CBR bitrate settings is applied to the encoder then dropping frames before the encoder does not help much, so instead we drop frames by dropping parts of the encoded bitstream in the RTMP send/output queue. By doing it in this way we also ensure that local recordings of a live broadcast remain intact.
Hence, if your CBR bitrate settings is higher than your actual upstream bandwidth at any time, then we will allow the send queue to grow, but will eventually cut part of the bitstream corresponding to a full GOP (group of pictures) - this is the time when you will see dropped frames (in bulk) corresponding to the number of frames that we cut.
This process will continue until your upstream bandwidth can again keep up, but unfortunately there may be prolonged periods where frame drops will continue. The experience for viewers will look like small stop/resume with pieces of your stream missing. Depending on the streaming service/server and how ingest and buffering is handled, you may never see the actual stops, but there will still be small pieces missing, - gaps if you will.
What is adaptive CBR?
Adaptive CBR is one of our newest features in XSplit Broadcaster 2.4+ that we hope will improve and streamline your streaming experience. Previously, you were allowed to change your bitrate manually while streaming if you saw you were dropping too many frames and suspected that your bandwidth had decreased. Since this can be hard to monitor and even harder to change during intense broadcasting sessions, we have developed adaptive bitrate to deal with this issue before you suffer stream drops at an inopportune moment.
What does adaptive CBR do?
Adaptive CBR monitors the delay of the send queue and if the queue grows above a certain threshold then the adaptive CBR function will decrease the bitrate to slightly below the last known bitrate. Once the stable bitrate is found, adaptive CBR will continuously check to see if the bitrate can be increased back closer to the original setting or if the bitrate need to be further lowered. This loop function continues during your broadcasting and will help to ensure that you do not experience dropped frames.
Needless to say that lowering the bitrate also lowers the quality, and large changes in upstream bandwidth over short periods of time can still result in dropped frames or very decreased quality of your stream. Magic can only take you so far -:), so your internet provider need to take you the rest of the way.
How to enable Adaptive Bitrate
- Go to your Broadcast Plugin. For example Twitch, head to Twitch Properties.
Under Video Encoding Section, click on the Gear Icon to open Video Encoding Setup Window
Make sure to enable 'Strict CBR' first and then check on Adaptive CBR.
- Click OK to save the Settings.
Now you can broadcast without having to restart your stream or manually having to reconfigure settings when the going gets tough.
It’s still an experimental feature but please give us your feedback in the comments below!