What is an MPD File?
An MPD file is an XML Media Presentation Description manifest used by MPEG-DASH. It describes available representations, segment locations, timing, and information needed for adaptive playback.
How MPD Files work
An MPD is the control document of a DASH presentation. It holds no media itself: it is XML that references initialization and media segments stored elsewhere, and it is served with the media type application/dash+xml. Its elements map the presentation into consecutive periods, adaptation sets, and individual representations, and express timing, segment addressing, and selection metadata. A client combines that description with network measurements and playback constraints to choose a representation and request its segments. For on-demand content the document is written once; for a live service the packager may republish it as new segments appear, and the document itself tells clients whether and when to fetch it again.
Key facts
- An MPD nests
Period,AdaptationSet, andRepresentation. A period is a span of the presentation timeline, and the representations inside one adaptation set are different encodings of the same content that a client can switch between. EveryRepresentationmust declare abandwidth, which is the figure clients weigh against measured throughput. - Segments are addressed through
SegmentBase,SegmentList, orSegmentTemplate. ASegmentTemplatewith aSegmentTimelinedefines each segment’s exact start and duration, written compactly asSentries with a duration, an optional start time and a repeat count, whereas a template with onlydurationstates an average, so real segment timing may deviate from the computed positions. The DASH-IF interoperability guidelines define addressing modes only withSegmentBaseandSegmentTemplateand forbid others, so they excludeSegmentList. They recommend that timeline form for content generated on the fly, and either it orSegmentBasewith an index segment for content prepared in advance. They also require one addressing mode per adaptation set and segment references without gaps or overlaps. - The
typeattribute defaults tostatic. In adynamicMPD the timeline is anchored to wall-clock time byavailabilityStartTime, so segments become available as time passes; iftimeShiftBufferDepthis set, older segments also leave a rolling availability window. Client and service clocks must agree: DASH-IF guidelines require a dynamic MPD to carry at least oneUTCTimingelement, because a client with a skewed clock requests segments that are not yet, or no longer, available. minimumUpdatePeriodtells clients about refreshing: if it is absent the MPD will never change, a nonzero value is how long a downloaded snapshot stays valid, and zero means a client must fetch a new MPD whenever it wants newer segments. Clients that process optional in-band MPD validity events use those for snapshot validity instead of a nonzero or zero value. Validity is counted from when the client begins its download, not from publication, so a copy that waited in a CDN cache is still valid for the full period after it is fetched. Caching therefore extends how long old snapshots stay in use: when deciding which segments a live service may remove, DASH-IF adds the delay before a new MPD reaches clients at the CDN edge.
When MPD Files matter
Every MPEG-DASH package requires an MPD, even one that offers a single representation; DASH itself is typically chosen when clients must select among bitrate, resolution, language, or accessibility variants. Incorrect timelines or segment references can cause stalls, missing tracks, or failed quality switches.
How Transloadit helps with MPD Files
Transloadit’s /video/adaptive Robot encodes video into adaptive streaming formats and generates the manifest. Its technique parameter defaults to dash, in which case the manifest is written as playlist.mpd unless playlist_name says otherwise; with cmaf it produces both an MPEG-DASH manifest and an HLS playlist that reference the same fMP4 segments.
Explore Transloadit’s file formats & compression capabilities