On Demand: Adaptive Bitrate Streaming

Today we launched a new streaming infrastructure for TVNweather On Demand which utilizes HTTP Live Streaming (HLS), a protocol created by Apple. Starting with the 2013 Season of Tornado Chasers you can now experience the same exact quality as our Super HD download while streaming in your web browser via Flash or on your iOS device.

This platform replaces a streaming provider we were using that could not offer HLS or the higher bitrates that were previously only available in the downloadable MP4s. We also plan on re-encoding the first season of Tornado Chasers for HLS as soon as time permits and we’ll make another announcement as soon as that is ready.

Auto Quality

The real center-peice feature of HLS is that it supports Adaptive Bitrate (ABR) streaming via a master playlist which can specify alternative playlists at various bitrates. This means that the quality of playback will automatically adjust based on the speed of your connection during the entire playback of the episode. Network conditions often vary and ABR streaming prevents pauses in playback while making sure you are viewing the highest quality your connection allows at any given moment. We currently offer five levels of quality: 360p, 504p, 720p, 1080p (5Mbps), and 1080p (7Mbps, High Profile, Level 4.1).

HLS clients can not only filter on bandwidth but what codecs they support as well, meaning that older iOS device will not attempt to playback an H.264 Level or Profile they can’t handle. The Flash client in the web browser can handle all Levels and Profiles of the H.264 encodes we provide.

Web streaming defaults to Auto for quality (ABR streaming) but you can manually override this in the Flash player as shown below.HLS Flash Player

Allows for Future Improvements

Now that we have HLS in place we can roll it out to other clients such as Roku and Chromecast. It also finally allows us to author an iOS app for On Demand because of Apple’s restriction that requires all video over 10 minutes and 5mb to be streamed over HLS.

Android doesn’t fully support HLS and in the devices that do attempt to support it there are bugs (fullscreen crashes the stream, unable to seek, etc). Since Android doesn’t properly support any Adaptive Bitrate Streaming over HTTP in the majority of devices in the wild, we have to fallback to loading a high quality MP4 for those devices. This means the streaming will be almost the same as it was before for Android, if not a little better since it was in 480p and will now be in 504p. Android support is something we’ll continue to look at to see if improvements are made and eventually we hope to release a native Android app where utilizing HLS would be possible via a third party library.

Tagged with: , ,
Posted in General
%d bloggers like this: