Understanding Failover

Failover handling occurs whenever a variant playlist has multiple renditions for the same bit rate and one of the renditions stops working.

In this case, the player switches between renditions as described here.

The following example shows a variant playlist with failover URLs of the same bit rate:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH =700000
http://sj2slu225.corp.adobe.com:8090/_default_/_default_/livestream.m3u8   

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH =700000
http://sj2slu225.corp.adobe.com:8091/_default_/_default_/livestream.m3u8

When the PSDK loads the variant playlist, it creates a queue that holds the URLs for all the renditions of the content for the same bit rate. Whenever a request for a URL fails, the PSDK then uses the next URL of the same bit rate from the failover queue. At any specific failure time, the PSDK cycles once through all available URLs until it finds one that works correctly or until it has attempted all the available URLs; in the latter case, the PSDK no longer continues attempting to play the content.

Failover occurs only at the M3U8 level. This means:
  • For VOD, failover can occur only when it begins attempting to play and not after it has started playing.
  • For live streaming, failover can happen in the middle of the stream.

The PSDK player, rather than the Apple AV Foundation player, provides failover handling.