Skip to content

Commit

Permalink
Add documentation for BOLA rule
Browse files Browse the repository at this point in the history
  • Loading branch information
dsilhavy committed Aug 1, 2024
1 parent e265119 commit c8b91fb
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 2 deletions.
Binary file added assets/images/bola.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions pages/advanced/abr/bola-rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
layout: default
title: BolaRule
parent: Adaptive Bitrate Streaming
grand_parent: Advanced Features
---

# BolaRule

## Description

The `BolaRule` is a buffer based ABR rule. BOLA uses a bitrate selection function that maps the current buffer level to
the bitrate of the next segment to be downloaded. The illustration below shows an example of a bitrate selection
function for a video that is encoded in three bitrates (1000, 2500 and 5000 kbps) and has a buffer capacity of 18
seconds. The thresholds for switching to a different quality are at 5 and 10 seconds of buffer.

![ABR]({{site.baseurl}}/assets/images/bola.png)

For additional details about the BOLA rule check out the following two paper:

* [From Theory to Practice: Improving Bitrate Adaptation in the DASH Reference Player](https://dl.acm.org/doi/pdf/10.1145/3336497)
* [BOLA: Near-optimal bitrate adaptation for online videos](https://ieeexplore.ieee.org/document/7524428)

## Example

```js
player.updateSettings({
streaming: {
abr: {
rules: {
bolaRule: {
active: true
}
}
}
}
});
```


4 changes: 2 additions & 2 deletions pages/advanced/abr/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ player.updateSettings({
| ABR Rule | Description |
|:-----------------|:---------------------------------------|
| `throughputRule` | [ThroughputRule](throughput-rule.html) |
| `bolaRule` | tbd |
| `bolaRule` | [BolaRule](bola-rule.html) |

**Important**: If both `throughputRule` and `bolaRule` are enabled dash.js dynamically switches between those two
rules based on the current buffer level.
Expand Down Expand Up @@ -91,7 +91,7 @@ player.updateSettings({
| ABR Rule | Description |
|:-------------------------|:--------------------------------------------------------|
| `insufficientBufferRule` | [InsufficientBufferRule](insufficient-buffer-rule.html) |
| `switchHistoryRule` | tbd |
| `switchHistoryRule` | [SwitchHistoryRule](switch-history-rule.html) |
| `droppedFramesRule` | [DroppedFramesRule](dropped-frames-rule.html) |
| `abandonRequestsRule` | [AbandonRequestRule](abandon-request-rule.html) |
| `l2ARule` | [L2ARule](l2a.html) |
Expand Down

0 comments on commit c8b91fb

Please sign in to comment.