Entrée glossaire · Format de manifeste

DASH MPD (Manifeste MPEG-DASH)

Le manifeste XML derrière le streaming adaptatif MPEG-DASH. Un fichier MPD décrit tout ce qu'un lecteur doit savoir d'une présentation : timeline, qualités, pistes audio, sous-titres et DRM.

Définition

Un fichier MPD est un document XML défini par la norme ISO/IEC 23009-1, également connue sous le nom de MPEG-DASH (Dynamic Adaptive Streaming over HTTP). Le fichier est typiquement servi avec l'extension .mpd et le type MIME application/dash+xml. Le MPD ne contient pas d'octets média. Il décrit comment un lecteur doit demander les segments média à un serveur HTTP ordinaire.

MPEG-DASH a été développé comme une alternative open standard à HLS. Le protocole a été publié en 2012 et est depuis devenu le protocole de streaming dominant sur les plateformes non-Apple. YouTube, Netflix, Amazon Prime Video et la plupart des services de streaming premium servent du contenu DASH aux clients web et Android, et servent du HLS aux clients iOS.

Structure : Period, AdaptationSet, Representation, Segment

Un MPD utilise une hiérarchie stricte à quatre niveaux. Chaque niveau exprime une préoccupation spécifique.

Un MPD squelettique ressemble à ceci :

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static"
     mediaPresentationDuration="PT10M">
  <Period>
    <AdaptationSet mimeType="video/mp4" codecs="avc1.640028">
      <Representation id="1080p" bandwidth="4500000"
                      width="1920" height="1080">
        <SegmentTemplate media="1080p/seg-$Number$.m4s"
                         initialization="1080p/init.mp4"
                         startNumber="1" duration="6" timescale="1"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" lang="fr">
      <Representation id="audio-fr" bandwidth="128000">
        <SegmentTemplate media="audio-fr/seg-$Number$.m4s"
                         initialization="audio-fr/init.mp4"
                         startNumber="1" duration="6" timescale="1"/>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

Les AdaptationSets vidéo et audio sont indépendants. Le lecteur choisit une Representation dans chacun et les télécharge en parallèle, ce qui explique pourquoi le contenu DASH a des fichiers de segments vidéo et audio séparés. HLS muxait historiquement l'audio dans le même segment TS mais évolue vers des flux séparés dans les déploiements fMP4 modernes.

DASH vs HLS

Les deux protocoles résolvent le même problème. Les différences sont surtout historiques et tactiques.

Si vous opérez un service de streaming aujourd'hui, la réponse réaliste est de publier les deux formats à partir d'un jeu partagé de segments fMP4 via CMAF. Les plateformes Apple récupèrent des playlists HLS ; tout le reste récupère un MPD DASH. Les mêmes segments encodés sont réutilisés.

DRM et DASH (Widevine, PlayReady)

DASH est le format de streaming de fait pour le contenu protégé par DRM sur le web ouvert parce que les principaux navigateurs embarquent Widevine. Le MPD référence le DRM via un ou plusieurs éléments ContentProtection à l'intérieur de chaque AdaptationSet :

<ContentProtection
  schemeIdUri="urn:mpeg:dash:mp4protection:2011"
  value="cenc"
  cenc:default_KID="abcdef01-2345-6789-abcd-ef0123456789"/>
<ContentProtection
  schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
  <cenc:pssh>...boîte PSSH en base64...</cenc:pssh>
</ContentProtection>

Le schemeIdUri identifie le système DRM. Widevine, PlayReady et FairPlay ont chacun leur propre UUID. Le chiffrement réel est Common Encryption (CENC), ce qui signifie que les segments eux-mêmes sont des octets chiffrés indépendamment de l'écosystème DRM qui livrera la clé. Les outils grand public ne peuvent pas contourner Widevine ni PlayReady. L'échange de clé se fait dans un environnement sécurisé hardware-backed sur l'appareil.

Si un flux DASH n'est pas protégé par un DRM reconnu, les segments sont généralement du fMP4 en clair et un outil capable de lire DASH (comme yt-dlp, N_m3u8DL-RE ou Vidora) peut les télécharger et les remuxer en un MP4 unique. Notre guide approfondi sur la conversion HLS et DASH vers MP4 couvre les workflows exacts pour vidéo et audio.

Patterns de manifeste courants

Vous croiserez trois familles de manifestes DASH dans la nature.

Savoir quel pattern vous rencontrez compte quand vous scriptez un téléchargeur : un MPD statique peut être entièrement résolu en une passe, tandis qu'un MPD dynamique nécessite une boucle de polling jusqu'à la fin de l'événement live. Notre analyseur DASH MPD vous indique quel pattern utilise un manifeste donné sans quitter le navigateur.

Lectures liées