Description
The Media Presentation Description (MPD) is a core metadata file defined by 3GPP for the Dynamic Adaptive Streaming over HTTP (DASH) standard. It is an XML document that provides a complete blueprint of a multimedia presentation, enabling a DASH client to dynamically request and adaptively play back media content. The MPD describes the temporal and structural relationships between media components, such as video, audio, and subtitles, which are segmented and stored on an HTTP server. It does not contain the media data itself but acts as a manifest or playlist, detailing how the presentation is organized over time (Periods) and how each media component is represented across different qualities (Representations) within Adaptation Sets.
Architecturally, the MPD is structured hierarchically. At the top level, it defines the overall presentation with attributes like media presentation duration and minimum buffer time. The presentation is divided into sequential Periods, which represent contiguous time intervals of the content, allowing for changes in content (e.g., main feature to advertisement) or encoding parameters. Within each Period, Adaptation Sets group media components that are logically associated, such as all video streams or all audio tracks in different languages. Each Adaptation Set contains multiple Representations, which are alternative encodings of the same media component at different bitrates, resolutions, or codecs. Each Representation is further divided into Segments, which are the actual media files (e.g., .mp4 or .m4s chunks) that the client downloads via HTTP GET requests. The MPD provides URLs, byte ranges, and timing information for these segments.
How it works involves the client first fetching and parsing the MPD before playback begins. Based on the MPD information and real-time network conditions (e.g., available bandwidth), the client's adaptation logic selects the most appropriate Representation to download segment by segment. This enables adaptive bitrate streaming, where the client can switch to a higher or lower quality Representation between segments to maintain smooth playback without buffering. The MPD can be static (all information is known in advance) or dynamic (updated periodically for live streaming, with new Periods and Segments added as they become available). The MPD also contains essential metadata such as codec information (e.g., HEVC, AAC), DRM protection system details (e.g., Common Encryption, signaling for MPEG-CENC), and accessibility features like role descriptors for different audio tracks (e.g., commentary, descriptive video). Its role is to decouple the media description from the delivery, providing a flexible, standardized way to enable efficient, reliable, and high-quality streaming services over best-effort IP networks like the internet and mobile networks.
Purpose & Motivation
The MPD was created to address the challenges of delivering high-quality, adaptive video streaming over HTTP, which became the dominant method for internet video distribution. Prior to DASH and the MPD, proprietary adaptive streaming solutions (like Apple's HLS or Microsoft's Smooth Streaming) used different manifest formats, leading to fragmentation and increased complexity for content providers who had to encode and store multiple versions of their content for different devices and platforms. The MDP, as part of the standardized DASH specification, provides a unified, interoperable format that enables a single set of encoded media segments to be described and delivered to any compliant client, reducing storage and operational costs.
The motivation for its development within 3GPP stemmed from the need to efficiently deliver multimedia services over mobile networks, where bandwidth is variable and congestion can occur. Traditional progressive download or non-adaptive streaming often resulted in poor user experience, with frequent buffering or low video quality. The MPD enables intelligent client-side adaptation by providing all necessary information for the client to make informed decisions about which media segment to fetch next based on current network conditions and device capabilities. This solves the problem of delivering a consistent, high-quality viewing experience across diverse networks and devices, which is critical for mobile operators and content providers.
Historically, it was introduced in 3GPP Release 9 as part of the initial DASH specifications, providing a foundational element for 3GPP's Packet-Switched Streaming Service (PSS) and later for Enhanced Multimedia Broadcast/Multicast Service (eMBMS) and 5G Media Streaming. It addressed the limitations of earlier 3GPP streaming protocols that were not natively adaptive or HTTP-based. By leveraging HTTP's ubiquity, caching, and firewall traversal, and combining it with the rich description in the MPD, DASH became a key enabler for scalable, efficient video delivery, forming the basis for modern streaming services, including over-the-top (OTT) platforms and broadcast-like services in mobile networks.
Key Features
- XML-based structured manifest describing temporal media presentation structure
- Supports both static (on-demand) and dynamic (live) streaming scenarios
- Enables adaptive bitrate switching by describing multiple Representations per Adaptation Set
- Includes comprehensive metadata: codecs, resolutions, bitrates, DRM information, and accessibility roles
- Facilitates efficient HTTP-based segment delivery using templates or explicit URLs
- Supports multi-period content for ads, chapters, or variable encoding parameters
Evolution Across Releases
Introduced the initial MPD specification as part of the baseline Dynamic Adaptive Streaming over HTTP (DASH) standard. Defined the core XML schema, hierarchical structure with Periods, Adaptation Sets, and Representations, and support for on-demand content with static MPDs. Established the foundation for adaptive media delivery over 3GPP networks.
Defining Specifications
| Specification | Title |
|---|---|
| TS 22.816 | 3GPP TS 22.816 |
| TS 26.116 | 3GPP TS 26.116 |
| TS 26.118 | 3GPP TS 26.118 |
| TS 26.233 | 3GPP TS 26.233 |
| TS 26.234 | 3GPP TS 26.234 |
| TS 26.244 | 3GPP TS 26.244 |
| TS 26.247 | 3GPP TS 26.247 |
| TS 26.307 | 3GPP TS 26.307 |
| TS 26.346 | 3GPP TS 26.346 |
| TS 26.347 | 3GPP TS 26.347 |
| TS 26.348 | 3GPP TS 26.348 |
| TS 26.501 | 3GPP TS 26.501 |
| TS 26.512 | 3GPP TS 26.512 |
| TS 26.517 | 3GPP TS 26.517 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.827 | 3GPP TS 26.827 |
| TS 26.848 | 3GPP TS 26.848 |
| TS 26.854 | 3GPP TS 26.854 |
| TS 26.857 | 3GPP TS 26.857 |
| TS 26.905 | 3GPP TS 26.905 |
| TS 26.909 | 3GPP TS 26.909 |
| TS 26.917 | 3GPP TS 26.917 |
| TS 26.929 | 3GPP TS 26.929 |
| TS 26.938 | 3GPP TS 26.938 |
| TS 26.949 | 3GPP TS 26.949 |
| TS 26.955 | 3GPP TS 26.955 |
| TS 26.957 | 3GPP TS 26.957 |
| TS 26.981 | 3GPP TS 26.981 |
| TS 26.998 | 3GPP TS 26.998 |
| TS 28.406 | 3GPP TS 28.406 |
| TS 29.116 | 3GPP TS 29.116 |
| TS 29.513 | 3GPP TS 29.513 |