ABRManager
Overview
The ABRManager (ABR for Adaptive BitRate) is a class which facilitates the choice between multiple audio/video qualities in function of the current bandwidth, the network capacities and other specific settings set by the client.
It does so by receiving various values such as:
- when network requests begin, progresses or end
- stats about the bandwidth of the user
- the current status of the buffer (how much of the buffer is left etc.)
- DOM events
- user settings (maximum authorized bitrate/width etc.)
- the available qualities
With all those variables at hand, it then proposes the quality which seems to be the most adapted, that is the quality which:
- will respect user settings (example: a Maximum bitrate is set)
- will maximize the user experience (example: a quality too high for the network to handle would lead to excessive re-bufferings, but a too low would be not as pleasant to watch)
In order to estimate the quality that maximizes the playback experience, the ABR relies on two โestimatorsโ. The bandwidth estimator picks a quality from network conditions. The buffer based chooser relies on buffering conditions to make his choices.