Control the quality with adaptive bit rates (ABR)

The PSDK can play video assets that have multiple bit rates to provide more than one quality level.

Based on the bandwidth conditions and the quality of playback (frame rate), the video engine automatically switches the quality level to provide the best playback experience. The PSDK performs transitions between the various quality levels seamlessly and automatically. PSDK exposes the list of renditions and enables you to control some aspects of the adaptive streaming experience.

You can specify multiple profiles that have different bit rates.

To configure the adaptive bit-rate (ABR) engine, choose values for the ABR parameters.

  1. Decide on the minimum and maximum bit rates.

    These define a range of bit rates from which the ABR engine can choose. The ABR engine uses profiles only from this range when downloading fragments and rendering images on screen.

  2. Decide on the initial bit rate, in bits per second, to use when beginning playback.

    For preload of the first downloaded fragment, the PSDK selects the profile with the bit-rate value that is closest to (equal or less) this initial value. For the first fragment, the minimum/maximum range is ignored.

  3. Decide on the ABR policy, which determines how quickly the engine switches between available quality profiles.
    When set to the aggressive policy, the video engine moves much more quickly to a higher-resolution profile than when the conservative policy is selected. The ABRControlParameters class exposes the ABRPolicy enumeration, which defines the following policy values:
    • ABR_CONSERVATIVE
    • ABR_MODERATE
    • ABR_AGGRESSIVE
  4. Set the ABR parameter values. The constructor is the only place where you can set these values.
    public ABRControlParameters(int initialBitRate,
                              int minBitRate,
                              int maxBitRate,
                              ABRControlParameters.ABRPolicy abrPolicy)
    
  5. Assign the ABR parameters to the media player.
    MediaPlayer.setABRControlParameters(ABRControlParameters params)
    
Note:

The PMPDemoApp scrub bar does not include settings for controlling the ABR parameters, but it makes the controls available from the options menu that is accessible with the ActionBar.