In my last post, I discussed HEVC--or H.265--which is a new encoding format that requires only half the bandwidth for the same quality content. In this post, I will focus on a new format for streaming content known as MPEG-DASH that improves the way content is delivered to a device.
First, a bit of background: the biggest problem with streaming adaptive bitrate content today is fragmentation. There are numerous ways to stream content to a device, including formats such as RTMP, progressive download, HTTP live streaming (HLS), Smooth Streaming and HTTP dynamic streaming (HDS). With this many formats, it can be difficult to distribute your content to every device. On top of that, the implementation of these formats on various devices, especially Android, can vary depending on the hardware and operating system version. This is where MPEG-DASH comes in. The MPEG-DASH governing group is made up of people from companies such as Adobe, Microsoft and Netflix who have come together in an effort to reduce the number of streaming protocols required to reach most devices.
The format for DASH is similar to Apple’s HLS, Adobe’s HDS and Microsoft’s Smooth Streaming. It uses index files and segmented content to stream to a device where the index file indicate the order in which segments are played. Since both Adobe and Microsoft have been pushing DASH as a standard, we can assume that HDS and Smooth Streaming will be replaced by DASH helping to reduce the number of formats. As always, Apple seems to be the one hold out and hasn’t yet publicly expressed that it will support DASH. In the end, we will probably end up with two main streaming formats: HLS and DASH.
So, why don’t we just adopt HLS instead of adding another streaming protocol? This would make sense, right? HLS is already supported on iOS and Android devices, as well as by many connected TVs and gaming consoles. There are also plugins that can be used to stream HLS on playback in the Flash player. Even if HLS standardization makes sense on a surface level, there are two main reasons the why HLS is not the best solution available:
- First, HLS is not officially a standard and is currently a specification dictated by Apple--which changes every 6 months. Also, it has produced playback fragmentation of HLS-supported devices.
- Second, HLS does not have support for multi-DRM solutions--but DASH does--which is why most major studio houses have endorsed DASH.
We are starting to see companies testing out DASH and the industry is getting closer and closer to real production uses of DASH. The latest version of Chrome has added support for DASH and there are other plugins that have also included support for DASH. We’re still not close to mass adoption, though. For example, there has been limited interoperability testing and some initial results indicate that all DASH implementations are not equal. I believe that 2013 is going to be the year where we start to see broader implementation of DASH and that we’ll reach a point of mass adoption over the next 2 years.
Here at Brightcove, we focus on being able to stream content to any device, which--in this fragmented world--causes us to create many different formats for streaming. We are looking forward to a world where we can store less content and stream to more devices, reducing complexity in streaming and storage costs for our publishers.