WebRTC ABR - Decision Workflow

The following shows the decision-making workflow performed to know when to move up and down variants.

  1. Check if an upgrade is possible → if they qualify → upgrade
  2. Caveat - if the client is requesting a keyframe then don’t upgrade
  3. If the client doesn’t qualify → then we test for trial → if they qualify for trial & are above downgrade of target → attempt upgrade
  4. If the client is requesting a keyframe or has dropped frames → downgrade
  5. Otherwise downgrade based on the calculation

The above checks are run with every keyframe received or per the mbr.test.delay setting in the red5pro/conf/webrtc-plugin.properties file.