# Diffusion en flux adaptatif dynamique sur HTTP

Diffusion en flux adaptatif dynamique sur HTTP (en anglais : Dynamic Adaptive Streaming over HTTP) souvent nommé DASH ou MPEG-DASH est un standard de format de diffusion audiovisuelle sur Internet. Il se base sur la préparation du contenu en différentes présentations de qualité et débit variable, découpées en segments de courte durée (quelques secondes). Chacun de ces segments est rendu disponible individuellement au moyen d'un protocole d'échange. Le protocole principalement ciblé est HTTP comme l'indique le titre, mais la spécification admet explicitement que d'autres protocoles (par exemple FTP) puissent être utilisés. L'organisation des segments et les paramètres associés sont publiés dans un manifeste au format XML.
La norme ISO/IEC 23009 finalisée fin 2011$^,$ définit le format du manifeste ainsi que celui des segments basés sur des formats de conteneur MPEG : ISO Base Media File Format (ISO/IEC 14496-12) et MPEG-2 Transport Stream (ISO/IEC 13818-1), et donne des indications pour la définition d'autres formats de segment.
Le comportement attendu des clients MPEG-DASH et les algorithmes d'adaptation ne sont pas normalisés, laissant aux fournisseurs de ces applications une large marge pour la différenciation commerciale et/ou l'adaptation à des besoins spécifiques.
L'idée de base est que le client MPEG-DASH effectue une estimation de la bande passante disponible pour la réception des segments, et en fonction du remplissage de son tampon de réception il choisit pour le prochain segment à charger une représentation dont le débit :
* assure la meilleure qualité possible
* et permet un délai de réception compatible avec le rendu ininterrompu du contenu.
L'utilisation de HTTP comme protocole sous-jacent permet de s'appuyer efficacement sur l'infrastructure existante du web et les bibliothèques réseau existantes sur les appareils connectés à Internet (ordinateurs, tablettes, télévisions connectées, décodeurs, smartphones...)

## Caractéristiques détaillées

La spécification est découpée en plusieurs parties :
* Part 1: Media presentation description and segment formats
* Part 2: Conformance and reference software
* Part 3: Implementation guidelines
* Part 4: Segment encryption and authentification
* Part 5: Server and network assisted DASH operation (SAND)

### Partie 1: Description de la présentation des médias et format des segments

C'est le cœur de la norme permettant de déployer des serveurs et clients inter-opérables. La spécification adresse principalement deux aspects:
* Le format du manifeste qui décrit la structure selon laquelle est organisée la diffusion du contenu, et permet aux clients DASH de déterminer comment ils peuvent charger les segments de contenu.
* Le format des segments de données contenant l'audio, la vidéo, les sous-titres, etc., que peut fournir un serveur.

### Partie 2: Conformité et logiciels de référence

Cette partie décrit les outils logiciels et les procédures pour valider la conformité à la spécification. Cela concerne:
* la conformité du manifeste;
* la validation des segments de type ISO-BMFF;
* la validation des segments de type MPEG2-TS.
La conformité du manifeste vérifie tout d'abord que les liens (Xlink) inclus dans le document XML peuvent être résolus. Il valide ensuite que le document résultant est conforme au schéma XML fournit par la spécification. Enfin il utilise un Schematron pour assurer que les différents éléments du manifeste respectent les contraintes normatives et soient cohérents.
La validation des segments vérifie que les informations indispensables à la réception et au décodage corrects par le client sont présentes. Il vérifie que les structures respectent les contraintes pour l'adaptation (i.e. la possibilité de changer de représentation sans discontinuité). Il s'assure du respect de certaines contraintes temporelles.

### Partie 3: Guide de mise en œuvre

Ce document technique fournit des recommandations sur la mise en œuvre et le déploiement d'un système conforme à MPEG-DASH. Cela couvre:
* La préparation du contenu multimédia en vue de sa diffusion.
* L'implémentation des clients.
* Le déploiement des systèmes.
Il permet de mieux comprendre le rôle des différents éléments du manifeste. Il décrit l'utilisation en pratique de MPEG-DASH, en fournissant des détails sur la manière d'encoder les segments, de les encapsuler dans ISO-BMFF ou MPEG2-TS, adresse les aspects temporels, en particulier pour la fourniture d'un service de diffusion en direct (de type chaîne de télévision), ou des cas d'utilisation comme la gestion des modes de lecture particuliers (pause, avance rapide) ou l'insertion de publicités.

### Partie 5: Exploitation assistée par les serveurs et le réseau

Cette spécification vise à permettre des améliorations dans la qualité de la diffusion MPEG-DASH. Ces améliorations concernent d'une part l'amélioration de la qualité du contenu qui sera rendu par le client, en lui permettant de sélectionner des représentations optimales, d'autre part la réduction du coût de la diffusion sur le réseau, en diminuant globalement le volume du trafic et/ou en réduisant la charge des serveurs de contenu.
La spécification définit des messages optionnels qui peuvent être échangés entre les différentes entités d'un système MPEG-DASH. Ces messages fournissent des informations contextuelles concernant l'exploitation du service, qui permettent aux entités concernées de prendre de meilleures décisions.Ces informations peuvent concerner la qualité de service du réseau, la disponibilité en cache de segments, la signalisation d'incidents pouvant affecter la diffusion, etc.

## Article connexe

* DASH-IF