The DASH standard is an attractive alternative to RTSP because it makes video streaming more efficient. DASH does this by taking advantage of HTTP's statelessness. This means that DASH standard software can stream video by only grabbing enough video data to bridge the gap between multiple HTTP connections.
Under the DASH standard, video content exists on the server in these two parts:
- Media Presentation Description (MPD) -- a manifest, or a file containing information about the video content
- Segments -- chunks of video data separated into multiple files
You probably already know that in order to play an MP3 music file, you have to have software or a device that reads the MP3 standard file type. The same is true with DASH. To play DASH standard video, you'll need a DASH client. That client is some form of software that's programmed to play video that complies to the DASH standard. As the standard becomes more widely adopted, you'll find popular Web browsers and mobile apps adding DASH compatibility to their software.
A DASH client retrieves and plays the video content using these steps:
- The client downloads and reads the MPD to get important information, such as the content locations, segment encodings, resolution, minimum and maximum bandwidths, accessibility features like closed captioning and content restrictions (such as DRM).
- The client selects an appropriate segment encoding and begins streaming the content through a series of HTTP requests. The server creates and encodes each segments on demand for each request, all from the same source.
- The client buffers data as it's downloaded, while also keeping track of fluctuations in the connection bandwidth. If necessary, the client automatically changes to a different segment encoding (from those listed by the MPD) that's more compatible with the current bitrate. This ensures the client maintains a sufficient buffer throughout the video without downloading more data than you need.
Because of its structure, DASH acts as a framework for better consuming a single video source. For example, a DASH encoder can break up an MP4 video file into 2-second segments encoded for a Microsoft Silverlight client on a fast network. Then, it can use that same MP4 source to create 15-second segments for a game console on a slower network. For even more bandwidth optimization, the MPD can indicate multiple locations to choose from for each source file.
As of early 2012, there was a lot of buzz about how quickly DASH might take off, especially considering who's on board with it. We'll check out that buzz on the next page.