Qu’est ce que le DASH?

Le standard MPEG-DASH (ISO/IEC 23009-1) a été défini dans la perspective d’une meilleure interopérabilité entre les consommateurs et les fournisseurs de contenus streamés.

Le streaming RTP impose au site hébergeur la gestion d’autant de flux ouverts et donc de sessions que de clients. Par ailleurs, les services RTP sont généralement bloqués par les pare-feux.

Avec HTTP le client gère le streaming sans avoir besoin de maintenir une session ouverte au niveau du site serveur. De plus, les protocoles HTTP sont généralement ouverts au niveau des pare-feux.

Ceci étant, chaque plate-forme de streaming impose ses formats d’encodage et d’encapsulation ainsi que sa méthode d’accès.

Au delà de la problématique de l’interopérabilité, le standard DASH s’appuie surtout sur une approche radicalement différente de la relation entre clients et serveurs, notamment pour garantir la qualité de service. Dans une approche traditionnelle d’ingénierie, la gestion de la charge est assumée par le CDN avec pour corollaire un effondrement des performances lorsque le site hébergé est victime de son succès et fait l’objet d’une forte affluence.

Le standard DASH reporte la gestion de la qualité de service au niveau de chaque client qui prend en charge les opérations nécessaires en fonction de la bande passante réellement mesurée à son niveau.

Principes de fonctionnement

Une essence audiovisuelle est constituée de plusieurs composantes: vidéo, pistes audio, sous-titres.

Ces différentes composantes sont encodées à des débits différents. De façon complémentaire un encodage I-Frame à bas débit est réalisé.  Cet encodage I-Frame est exploité par le player lors des opérations de transport rapide (rewind ou fast forward).

Les encodages réalisés pour une essence donnée sont décrits dans un descripteur MPD (Media Presentation Description) en format XML. Ce descripteur qui est hébergé au niveau du CDN est exploité par le player pour accéder aux chunks. L’analyse de ce descripteur donne des informations sur la nature de l’essence, les composantes disponibles, les résolutions, les bandes passantes minimales et maximales, les éventuelles règles d’accès (DRM), les URL, …

Sur la base de ce descripteur, le player sélectionne le format et le débit approprié puis accède aux premiers chunks via la méthode d’accès standard HTTP GET ou HTTP GET partiel (with byte range). Le player héberge un buffer minimal qui lui permet de s’affranchir ponctuellement des variations de débit sur le réseau pour garantir un affichage fluide. En cours d’affichage, le player analyse la bande passante réellement disponible sur le réseau pour sélectionner dynamiquement les chunks suivants garantissant un remplissage satisfaisant du buffer.

La spécification DASH porte uniquement sur le contenu du descripteur MPD et la méthode de segmentation des composantes d’une essence audiovisuelle.

En ce qui concerne les codecs et le multiplexage, la norme est clairement agnostique.

Couverture fonctionnelle

Cinq profils couvrant des applications différentes ont été définis. A chaque profil correspondent des caractéristiques particulières tant pour le descripteur (MPD) que pour les segments.  Le standard intègre par ailleurs les services suivants:

  • Commutation et sélection de stream. Par exemple, dans l’optique de sujets multi caméras ou dans le cas du multilinguisme.
  • Insertion publicitaire
  • Fragmentation du descripteur MPD
  • Fabrication de Chunks (Segments) de durée variable.
  • Hébergement multi serveurs ou multi CDNs
  • Mise à disposition d’une horloge pour les directs
  • Scalable video coding (SVC)
  • Multiview video coding (MVC)
  • Une description modulaire des composantes
  • Une méthode de reporting vers un site central de la métrologie réalisée par chaque client

Exemple de structure

A chaque CHUNK (segment) correspond une URL, un index, un timecode de début et une durée. Un ou plusieurs points d’accès direct au sein du segment sont également définis.

Exemple d’une séquence de lecture

      1. Le client démarre la lecture sur les chunks vidéo et audio de débit le plus  élevé.

2. En cours de lecture, le client analyse la bande passante réseau disponible et commute sur le chunk vidéo de débit 2 < débit 1 en restant positionné sur le chunk audio de débit 1.

3. Lorsque la bande passante disponible augmente le lecteur commute sur les chunks vidéo de débit 1.

4. Si l’utilisateur se met en pause et active le mode Rewind, le player commute sur le codage I frame et coupe l’audio.

5. Sur le timecode sélectionné, l’utilisateur repart en mode Play en ayant sélectionné le débit 3 compatible avec la bande passante disponible.

Aperçu de notre plateforme