Radiant Media Player provides support for fallback streaming URLs through the
backupSrc
player setting. This features is supported for HLS, DASH or progressive download. It will work for live, DVR and on-demand streaming.
At a given point in time a specific streaming URL may become unavailable. This could be caused by server outage or overload. At player start-up Radiant Media Player is able to detect this kind of failure when it attempts to fetch media content
from the server. In the event it cannot access the initial resource the player can automatically switch to an alternate backup resource thus increasing the chance for your viewers to still be able to access your content. With backupSrc
setting, the check for stream availability happens when initial playback is requested. To handle in-stream playback/network error you can do one of the following:
error
event and implement some custom fallback handlingIt should be noted that the player will only use fallback streaming URLs for a like-for-like streaming protocol. This means that if the player opts for HLS streaming in a specific environment it expects to have HLS back-up streaming URLs (e.g. it will not fallback to DASH or progressive download even if available).
When the player fails to load an item from the backupSrc
setting a 1007
warning
event will fire. If the last item also fails an additional error
event will fire.
In this example we use a HLS fallback streaming URL. Fallback information are passed to the player through the backupSrc
setting which is an Array of Object like the src
setting.
<!-- Include Radiant Media Player - here we use the optimised build for hls.js --> <script src="https://cdn.radiantmediatechs.com/rmp/5.11.5/js/rmp-hlsjs.min.js"></script> <!-- Set up your wrapper div with its unique id --> <div id="rmpPlayer"></div> <!-- Player container element --> <script> // Your primary streaming source - in this example we use HLS var src = { hls: 'https://your-hls-url.m3u8' }; // Your fallback streaming source - must be of same type as above var backupSrc = [{ hls: 'https://your-fallback-hls-url-1.m3u8' }, { hls: 'https://your-fallback-hls-url-2.m3u8' }]; var settings = { licenseKey: 'your-license-key', src: src, // Here we tell the player to use fallback assets if primary asset fails to load backupSrc: backupSrc, width: 640, height: 360, contentMetadata: { poster: [ 'https://your-poster-url.jpg' ] } }; var elementID = 'rmpPlayer'; var rmp = new RadiantMP(elementID); rmp.init(settings); </script>
This error resilience feature is specific to HLS. More information on the subject can be found here.
In a nutshell: "If your playlist contains alternate streams, they can not only operate as bandwidth or device alternates, but as failure fallbacks. If the client is unable to reload the index file for a stream (due to a 404 error, for example), the client attempts to switch to an alternate stream".
Note that this feature is a complement to the previously mentioned fallback mechanism. This mechanism can actually allow recovery of in-stream errors. Fallback information needs to be presented in the HLS manifest.