Networking/Archive/DASH
Work in progress
This is a placeholder page for progress on the DASH implementation in Gecko.
What is DASH?
DASH is Dynamic Adaptive Streaming over HTTP. It is a standardised attempt to replace similar incompatible technologies including Microsoft Smooth Streaming, Adobe Dynamic Streaming and Apple's HTTP Live Streaming (HLS).
A good introduction to DASH is presented in What is MPEG DASH? - Streaming Media Magazine
Main points to consider:
- aims to provide on demand and live streaming
- adaptive bitrate media streaming (client-side monitoring of load/available resources and adaptation through switching media streams).
- streams over HTTP resuing existing HTTP infrastructure including HTTP servers, HTTP caching, Firewall-friendly HTTP packets, Content Delivery Networks (CDNs), ISP infrastructure
- does not attempt solve the HTML5 video tag issue. DASH is codec agnostic.
DASH Specification
There are two types of file that DASH deals with.
- Encode A/V streams - Media
- Manifest-type files - Media Presentation Description (MPD)
The DASH Specification presents an hierarchical MPD Data Model, which describes the Media Presentation in terms of Periods, Groups, Representations and Segments. The MPD file represents this model using XML, and is delivered from the HTTP server to the DASH client to describe accessible segments and metadata e.g. timing. The MPD provides redundant information
- The media presentation is defined as a series of one or more consecutive periods.
- Each period in the presentation consists of
Media Segment information is also described.
References/Links
- What is MPEG DASH? - Streaming Media Magazine
- Microsoft Smooth Streaming
- Adobe Dynamic Streaming
- Apple's HTTP Live Streaming (HLS)
- Dynamic Adaptive Streaming over HTTP – Design Principles and Standards