What parameters are available for Bitmovin Player's adaptation logic?

This blog post nicely describes : Adaptation Logic, Custom Bitrate Boundaries and Startup bitrates for the Player Web SDK.

Also, you can find many samples about customizing adaptation logic in the Player Web SDK samples repo:

There’s munch more in the blog post and samples I linked, but here’s some examples I took from it:

Default Logics

// By default, our player comes with two types of ABR algorithms
// and it is possible to choose one of them in the player configuration, via
//  the parameter “logic” in the “adaptation” set of the configuration object.

// The algorithm implemented by default (v2) is based on buffer
// as well as on bandwidth estimation, whereas v1 is only buffer based.
let conf = {
  (...)
  adaptation: {
    desktop: {
      logic: 'v2' // v2: buffer and bandwidth estimation, v1: buffer only
    }
  },
}

Bitrate Boundaries

// In some cases, the provided algorithms may not completely fit with
// your requirements. For instance, if you want to use the highest quality
// in your pay option only, and restrict the quality in your free offerings,
// you may need to artificially limit the available bitrate. This can easily
// be achieved by the according settings in the player configuration:
let conf = {
  (...)
  adaptation : {
    desktop: {
      bitrates: {
        maxSelectableVideoBitrate: '10000000bps'
      }
    }
  }
}

// On the other hand, if you consider that providing a low quality stream
// is worse than having some buffering, you may define a minimal used bitrate:
let conf = {
  (...)
  adaptation : {
    desktop: {
      bitrates: {
        minSelectableVideoBitrate: '3000000bps'
      }
    }
  }
}

// Having this setting present, the player would only choose quality levels,
// within the specified boundaries. Furthermore, a differentiation between viewers,
// using a mobile device and those using a desktop or notebook is possible:

let conf = {
  (...)
  adaptation : {
    desktop: {
      bitrates: {
          minSelectableVideoBitrate: '3mbps',
          maxSelectableVideoBitrate: '6mbps'
      }
      mobile: {
        bitrates: {
          minSelectableVideoBitrate: '0.5mbps',
          maxSelectableVideoBitrate: '2.5mbps'
      }
    }
  }
}

// The same parameters are also available for audio:
let conf = {
  (...)
  adaptation : {
    desktop: {
      bitrates: {
        minSelectableAudioBitrate: '128kbps',
        maxSelectableAudioBitrate: '320kbps',
        minSelectableVideoBitrate: '900kbps',
        maxSelectableVideoBitrate: Infinity
      }
    },
}
1 Like