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

  1. An MPD nests Period, AdaptationSet, and Representation. 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. Every Representation must declare a bandwidth, which is the figure clients weigh against measured throughput.
  2. Segments are addressed through SegmentBase, SegmentList, or SegmentTemplate. A SegmentTemplate with a SegmentTimeline defines each segment’s exact start and duration, written compactly as S entries with a duration, an optional start time and a repeat count, whereas a template with only duration states an average, so real segment timing may deviate from the computed positions. The DASH-IF interoperability guidelines define addressing modes only with SegmentBase and SegmentTemplate and forbid others, so they exclude SegmentList. They recommend that timeline form for content generated on the fly, and either it or SegmentBase with an index segment for content prepared in advance. They also require one addressing mode per adaptation set and segment references without gaps or overlaps.
  3. The type attribute defaults to static. In a dynamic MPD the timeline is anchored to wall-clock time by availabilityStartTime, so segments become available as time passes; if timeShiftBufferDepth is 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 one UTCTiming element, because a client with a skewed clock requests segments that are not yet, or no longer, available.
  4. minimumUpdatePeriod tells 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

Sources

Turn media knowledge into a working pipeline

Connect uploads, processing, AI, storage, and delivery through one declarative API — with the encoding stack, scaling, and format churn handled for you.

Try Transloadit for free