You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Adaptive Bitrate (ABR) Manager

Presentation

1) initial bitrate is configurable for 4k and non-4k, based on a desired target bitrate. The profile with smallest bitrate >= that target is picked. If target bitrate is higher than all available bitrates, top profile is picked.

Current defaults:

Initial bitrate: 2.5 mb - for non-4k playback

Initial bitrate for 4K playback: 13mb ie, 3/4 profile

2) as each fragment is downloaded, an estimated available bandwidth sample is computed and shared with ABR manager (total bytes / download time); configuration exists to exclude "too small" fragments from this sampling. In order to accommodate Peacock stream characteristics we no longer exclude small fragments as contributors, but instead apply a “cap” so that a small fragment with poor computed estimated bandwidth - that nevertheless downloaded quickly - doesn’t trigger ramp down.

3) ABR manager filters "old" estimated bandwidth samples, using average recent bandwidth samples for its estimated effective bandwidth (threshold = 5s).

4) ABR manager will jump when detecting big swing in available bandwidth (allowing quick skip up/down over other profiles).

5) ABR manager will more conservatively accommodate small shifts in available bandwidth (to avoid flipping up/down if we're on the edge); requiring multiple satisfying samples before ramping up/down in this case

6) upon initial tune, with healthy network, ramps to top profile will occur after playout of three fragments (typically 3*2s=6s) at initial profile

7) A “useNewABR” is recently introduced, to use a hybrid buffering/throughput model.  This takes into account buffer health to avoid unnecessary rampdowns when buffer is healthy, along with a mechanism to escape "ABR valley" when buffers are healthy but throughput as measured appears poor.


Configuration/defaults:
abr-cache-life=<x in sec> lifetime value for abr cache for network bandwidth calculation(default 5 sec)
abr-cache-length=<x> length of abr cache for network bandwidth calculation (default 3)
abr-cache-outlier=<x in bytes> Outlier difference which will be ignored from network bandwidth calculation(default 5MB)
abr-nw-consistency=<x> Number of checks before profile incr/decr by 1.This is to avoid frequent profile switching with network change(default 2)
abr-skip-duration=<x> minimum duration of fragment to be downloaded before triggering abr (default 6 sec).

ABR Override

with VBN build we can create/use /opt/aamp.cfg to force a specific profile.  The relevant configuration options are:

abr        disable abr mode (defaults on)

default-bitrate    specify initial bitrate while tuning, or target bitrate while abr disabled (defaults to 2500000)

default-bitrate-4k    specify initial bitrate while tuning 4K contents, or target bitrate while abr disabled for 4K contents (defaults to 13000000)

so for example:

```abr

default-bitrate=1200000```

Will disable abr and use the explicitly specified bitrate.

  • No labels