InsufficientBufferRule
Description
The InsufficientBufferRule verifies each ABR choice to make sure the download is unlikely to cause a rebuffering event. The rule is best explained by looking at a concrete example. Assume the following values:
currentThroughput= 5Mbit/scurrentSafeThroughput=currentThroughput*throughputSafetyFactor= 5Mbit/s * 0.9 = 4.5 Mbit/scurrentBufferLevel= 10 secondssegmentDuration= 4 seconds
To avoid a buffer underrun we need to finish the download of the next segment in 10 seconds. This means we need to download 4 seconds of content in 10 seconds. This leads us to the following expression that we need to solve:
possibleBitrate <= currentSafeThroughput * currentBufferLevel / segmentDuration
Plugging the examples values from above we get:
possibleBitrate <= 4.5 Mbit/s * 10s / 4s
So in this case we can select a maximum bitrate of 11.25 Mbit/s.
Configuration Options
| Parameter | Description |
|---|---|
throughputSafetyFactor | The safety factor that is applied to the derived throughput, see example in the Description. |
segmentIgnoreCount | This rule is not taken into account until the first segmentIgnoreCount media segments have been appended to the buffer. |
Example
player.updateSettings({
streaming: {
abr: {
rules: {
insufficientBufferRule: {
active: true,
parameters: {
throughputSafetyFactor: 0.9,
segmentIgnoreCount: 2
}
}
}
}
}
});