As the viewing habits of consumers continues to shift from old media to IP, a number of HTTP streaming protocols have been recently introduced to allow for an easier and more efficient way to deliver video content. Specifically, the introduction of HTTP adaptive bitrate streaming has been an exciting development in terms of improving video quality, performance, and accessibility across all devices.
Unfortunately, the streaming industry has adopted the confusing practice of using similar three-letter acronyms. Let’s clear up some of this confusion and provide a comparison of the available options for HTTP streaming:
Progressive HTTP Streaming
Until recently, video content over HTTP has been delivered progressively — similarly to how images load in a web browser, from top to bottom (start to finish). However, progressive video streaming has some major drawbacks: viewers can’t skip around in a video without fully loading it, stream quality depends on the video file that is being downloaded and can’t be changed on the fly, and there are inherent security concerns as the video can be easily saved and copied.
Because of these drawbacks, the majority of streaming providers used Adobe’s RTMP protocol and their Flash Media Server (FMS), adding significant cost and complexity.
Return of HTTP
Because of the growing use of mobile devices and their lack of support for Adobe’s Flash, HTTP streaming has made a comeback. A number of different HTTP streaming solutions have been introduced that attempt to fix the drawbacks of progressive HTTP streaming and allow for more flexibility than RTMP.
These HTTP streaming solutions all feature adaptive-bitrate delivery, which means that they can change video quality on the fly because the actual video and audio files are broken up into smaller sized chunks and encoded into different bitrates. Depending on bandwidth or CPU conditions, a higher or lower quality stream can be automatically requested by a viewer for seamless playback.
An additional benefit to HTTP streaming is the ability to utilize CDNs to cache video content closer to end-viewers. Moving content closer to viewers increases performance by reducing the amount of hops that need to be made in order to fetch the requested video file.
HTTP Dynamic Streaming was developed by Adobe as an alternative to their RTMP protocol. HDS allows for adaptive streaming over HTTP to any device that’s compatible with Adobe Flash or Air. A big benefit to streaming with HDS instead of RTMP is not having to rely on a FMS, which significantly decreases the cost of operating the stream. Adobe has released a module for Apache, the most popular Open Source HTTP server, that allows it to act as a streaming origin server.
Because of the 97% market penetration that Flash Player has, HDS is a great choice for streaming to desktop computers. However, the Flash Player is not supported by Android and iOS, which limits practical use for broadcasting to mobile devices.
HLS stands for HTTP Live Streaming and is a protocol developed by Apple for their iOS devices and QuickTime player. Support was added to Android 3.0 (Honeycomb) which has made HLS the ideal candidate for streaming to the widest range of mobile devices. A large number of client video players are available including the default HTML5 player and most mobile browsers.
HLS can be deployed using most HTTP servers (including Apache) or a number of commercial streaming servers such as Adobe FMS and Wowza. Also, many streaming services and CDNs can stream to HLS-compatible players via transmuxing, or dynamically repackaging existing video streams into their HLS compatible packages.
Thanks to these handy features, HLS has been adopted as the primary mobile streaming protocol for most video content websites.
HTTP Smooth Streaming is Microsoft’s foray into adaptive HTTP streaming that runs on their IIS web server and Silverlight player. The Silverlight player detects local bandwidth and CPU conditions and dynamically switches bitrates to offer uninterrupted streaming. HSS supports multiple audio and video codecs, and is highly customizable. It is often used for very large-scale streams, such as NBC’s online stream of the Olympic Games, and is part of Netflix’s streaming stack.
Streaming to Apple devices is possible when using the H.264 video codec. IIS is able to transmux HSS fragments into ones compatible with iOS 3.0 and later devices.
TV undeniably is moving to the mobile web. That is why adaptive HTTP streaming will be the backbone of any streaming strategy that aims at enabling superior viewing experiences on any device. As all HTTP streaming formats add security and DRM capabilities, the question which format to choose will ultimately come down to supported features and cost of delivery.