SwitchHistoryRule
Description
Frequent quality switches result in a negative QoE for the end-user. The main objective of the SwitchHistoryRule
is to to detect and avoid any extreme bitrate oscillations allowed by the ABR algorithms. For that reason, the SwitchHistoryRule
monitors quality down-switches. It derives a ratio of down-switches divided by the number of times the quality stayed the same or even improved. If this ratio exceeds the switchPercentageThreshold
the quality is reduced.
if (drops + noDrops >= settings.get().streaming.abr.rules.switchHistoryRule.parameters.sampleSize
&& (drops / noDrops > settings.get().streaming.abr.rules.switchHistoryRule.parameters.switchPercentageThreshold)) {
switchRequest.representation = (i > 0 && switchRequests[currentPossibleRepresentation.id].drops > 0) ? representations[i - 1] : currentPossibleRepresentation;
}
Configuration Options
Parameter | Description |
---|---|
minimumSampleSize | Sum of ABR quality checks required before the rule kicks in. |
switchPercentageThreshold | Ratio of quality drops compared to no quality drops must exceed this threshold before a potential quality down-switch by the SwitchHistoryRule is enforced. |
Example
player.updateSettings({
streaming: {
abr: {
rules: {
switchHistoryRule: {
active: true,
parameters: {
minimumSampleSize: 8,
switchPercentageThreshold: 0.075
}
}
}
}
}
});