AAMP Adaptive Bitrate Behavior

Created on June 21, 2022

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.
    1. Current defaults:
    2. Initial bitrate: 2.5 mb – for non-4k playback
    3. 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. 
  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-bitratespecify initial bitrate while tuning, or target bitrate while abr disabled (defaults to 2500000)
default-bitrate-4kspecify initial bitrate while tuning 4K contents, or target bitrate while abr disabled for 4K contents (defaults to 13000000)

For example:

“`abr

default-bitrate=1200000“`

Will disable abr and use the explicitly specified bitrate.

Go To Top