Was ist eine MPD-Datei?

Eine MPD-Datei ist ein XML-Manifest zur Beschreibung einer Medienpräsentation (Media Presentation Description). MPEG-DASH verwendet dieses Manifest. Es beschreibt verfügbare Repräsentationen, Speicherorte der Segmente, Zeitangaben und Informationen für die adaptive Wiedergabe.

So funktionieren MPD-Dateien

Eine MPD ist das Steuerdokument einer DASH-Präsentation. Sie enthält selbst keine Medien, sondern besteht aus XML, das auf Initialisierungs- und Mediensegmente an anderen Speicherorten verweist, und wird mit dem Medientyp application/dash+xml ausgeliefert. Ihre Elemente gliedern die Präsentation in aufeinanderfolgende Perioden, Adaptation Sets und einzelne Repräsentationen und beschreiben Zeitangaben, Segmentadressierung und Auswahlmetadaten. Ein Client kombiniert diese Beschreibung mit Netzwerkmessungen und Wiedergabebeschränkungen, um eine Repräsentation auszuwählen und ihre Segmente anzufordern. Für On-Demand-Inhalte wird das Dokument einmal geschrieben. Bei einem Live-Dienst kann der Packager es erneut veröffentlichen, sobald neue Segmente erscheinen. Das Dokument selbst teilt den Clients mit, ob und wann sie es erneut abrufen sollen.

Wichtige Fakten

  1. Eine MPD verschachtelt Period, AdaptationSet und Representation. Eine Periode ist ein Abschnitt der Präsentationszeitleiste. Die Repräsentationen innerhalb eines Adaptation Sets sind unterschiedliche Encodings desselben Inhalts, zwischen denen ein Client wechseln kann. Jedes Element Representation muss bandwidth angeben. Diesen Wert wägen Clients gegen den gemessenen Datendurchsatz ab.
  2. Segmente werden über SegmentBase, SegmentList oder SegmentTemplate adressiert. Ein Element SegmentTemplate mit SegmentTimeline definiert den genauen Beginn und die Dauer jedes Segments, kompakt dargestellt durch Einträge vom Typ S mit einer Dauer, einer optionalen Startzeit und einer Wiederholungsanzahl. Ein Template mit lediglich duration gibt dagegen einen Durchschnitt an, sodass die tatsächlichen Segmentzeiten von den berechneten Positionen abweichen können. Die DASH-IF-Interoperabilitätsrichtlinien definieren Adressierungsmodi nur mit SegmentBase und SegmentTemplate und verbieten andere, schließen also SegmentList aus. Für Inhalte, die während des laufenden Betriebs erzeugt werden, empfehlen sie diese Zeitleistenform. Für vorab vorbereitete Inhalte empfehlen sie entweder diese Form oder SegmentBase mit einem Indexsegment. Außerdem verlangen sie einen einzigen Adressierungsmodus pro Adaptation Set und Segmentverweise ohne Lücken oder Überlappungen.
  3. Das Attribut type hat den Standardwert static. In einer MPD vom Typ dynamic verankert availabilityStartTime die Zeitleiste in der Uhrzeit, sodass Segmente im Laufe der Zeit verfügbar werden. Ist timeShiftBufferDepth gesetzt, fallen ältere Segmente zugleich aus einem gleitenden Verfügbarkeitsfenster heraus. Die Uhren von Client und Dienst müssen übereinstimmen: Die DASH-IF-Richtlinien verlangen in einer dynamischen MPD mindestens ein Element UTCTiming, da ein Client mit abweichender Uhrzeit Segmente anfordert, die noch nicht oder nicht mehr verfügbar sind.
  4. minimumUpdatePeriod informiert Clients über die Aktualisierung: Fehlt die Angabe, ändert sich die MPD niemals. Ein Wert ungleich null gibt an, wie lange eine heruntergeladene Momentaufnahme gültig bleibt. Null bedeutet, dass ein Client eine neue MPD abrufen muss, sobald er neuere Segmente benötigt. Clients, die optionale In-Band-Ereignisse zur MPD-Gültigkeit verarbeiten, verwenden diese anstelle des Werts ungleich null oder null, um die Gültigkeit der Momentaufnahme zu bestimmen. Die Gültigkeitsdauer zählt ab dem Beginn des Downloads durch den Client, nicht ab der Veröffentlichung. Eine Kopie, die in einem CDN-Cache gewartet hat, bleibt daher nach dem Abruf noch für den gesamten Zeitraum gültig. Caching verlängert somit die Nutzung alter Momentaufnahmen: Bei der Entscheidung, welche Segmente ein Live-Dienst entfernen darf, berücksichtigt DASH-IF zusätzlich die Verzögerung, bis eine neue MPD die Clients am CDN-Edge erreicht.

Wann MPD-Dateien relevant sind

Jedes MPEG-DASH-Paket benötigt eine MPD, auch wenn es nur eine einzige Repräsentation anbietet. DASH selbst wird meist gewählt, wenn Clients zwischen Varianten mit unterschiedlichen Bitraten, Auflösungen, Sprachen oder Barrierefreiheitsmerkmalen auswählen müssen. Fehlerhafte Zeitleisten oder Segmentverweise können Wiedergabestopps, fehlende Spuren oder fehlgeschlagene Qualitätswechsel verursachen.

So hilft Transloadit bei MPD-Dateien

Transloadits Robot /video/adaptive codiert Videos in adaptive Streamingformate und erzeugt das Manifest. Sein Parameter technique hat den Standardwert dash. In diesem Fall wird das Manifest als playlist.mpd geschrieben, sofern playlist_name nichts anderes vorgibt. Mit cmaf erzeugt er sowohl ein MPEG-DASH-Manifest als auch eine HLS-Playlist, die auf dieselben fMP4-Segmente verweisen.

Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren