HLS et DASH : comment fonctionnent réellement les protocoles de streaming

Avant le streaming, regarder une vidéo en ligne ne pouvait se faire que d’une seule manière : télécharger le fichier entier, puis le lire. Une vidéo de 500 Mo devait arriver intégralement sur votre appareil, même si vous ne vouliez voir que les 30 premières secondes. Les protocoles de streaming résolvent précisément ce problème : ils découpent la vidéo en petits fragments et permettent de la lire pendant que la suite est encore en cours de téléchargement.

La segmentation : la base du streaming

Prenons HLS (HTTP Live Streaming, créé par Apple), le protocole le plus courant : le serveur découpe la vidéo complète en un grand nombre de petits fichiers, appelés segments, qui durent généralement de 2 à 10 secondes et sont encapsulés en MPEG-TS ou en fMP4. Il génère également une liste de lecture (.m3u8) qui indique l’ordre et l’adresse des segments. Le lecteur récupère d’abord cette liste, puis télécharge les segments à la demande : lorsqu’un segment se termine, il récupère le suivant, presque sans attente.

Lecteur vidéo en ligne

Le débit adaptatif : pourquoi la lecture continue même sur un réseau instable

HLS et DASH (Dynamic Adaptive Streaming over HTTP, soutenu notamment par Microsoft) préparent plusieurs ensembles de segments pour une même vidéo, avec des résolutions et des débits différents : par exemple un ensemble en 1080p, un en 720p et un en 480p, tous répertoriés dans une liste de lecture principale. Le lecteur surveille en temps réel la vitesse de téléchargement et le niveau de mémoire tampon : il passe à un débit supérieur lorsque le réseau est bon et le réduit lorsque la connexion se dégrade, afin d’assurer une lecture continue. C’est le streaming à débit adaptatif (ABR), qui explique pourquoi les vidéos deviennent automatiquement floues lorsque vous prenez le métro.

Pourquoi télécharger un lien m3u8 échoue si souvent

Télécharger directement une URL .m3u8 ne fournit que quelques kilo-octets de texte : la liste de lecture, et non la vidéo. Pour enregistrer réellement la vidéo, un outil doit analyser cette liste, télécharger chaque segment et les assembler dans l’ordre. C’est pourquoi de nombreux téléchargeurs ne prennent pas du tout en charge les vidéos HLS ou exigent une étape spécifique de fusion des segments. TakeVid intègre la détection des segments et leur fusion automatique : le fichier téléchargé est donc complet et prêt à être lu.

Téléchargeur M3U8

  • HLS : créé par Apple, utilise des listes de lecture .m3u8, pris en charge nativement par iOS et Safari, adapté au direct comme à la vidéo à la demande
  • DASH : un standard ouvert utilisant des manifestes .mpd, déployé à très grande échelle par YouTube, Netflix et d’autres plateformes
  • Les deux utilisent le protocole HTTP ordinaire, se prêtent à la diffusion par CDN et dominent aujourd’hui le streaming

Téléchargeur DASH

Retour à tous les articles