Entrée glossaire · Protocole
HLS (HTTP Live Streaming)
Le protocole de streaming adaptatif dominant sur le web public. HLS livre la vidéo sous forme de petits segments listés dans une playlist M3U8, servis via HTTP standard.
Définition
HLS, abréviation de HTTP Live Streaming, est un protocole de streaming adaptatif basé sur HTTP. Apple l'a introduit en 2009 pour livrer la vidéo à l'iPhone via la même infrastructure qui alimentait déjà le reste du web. HLS est aujourd'hui documenté dans le RFC 8216 et une série de drafts complémentaires maintenus par Apple.
Le protocole repose sur trois composants : un fichier playlist texte avec l'extension .m3u8, un flux de petits fichiers de segments média (à l'origine .ts, de plus en plus .m4s dans les déploiements modernes), et une couche de chiffrement optionnelle qui protège chaque segment individuellement. N'importe quel serveur web standard peut héberger ces trois composants, ce qui explique pourquoi HLS s'est diffusé plus rapidement que les protocoles concurrents qui exigeaient des serveurs de streaming dédiés.
Fonctionnement interne de HLS
Une session HLS commence par la récupération d'une master playlist par le lecteur. La master playlist est un fichier M3U8 qui liste les flux variants disponibles, chacun étiqueté avec sa résolution et sa bande passante. Une master playlist typique contient des entrées pour les variantes 360p, 720p et 1080p. Le lecteur choisit une variante initiale selon une estimation de la bande passante de l'utilisateur.
Chaque variante pointe vers une media playlist, un autre fichier M3U8 qui liste les URLs des segments réels avec leurs métadonnées. La structure est volontairement minimale :
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.96,
seg-0001.ts
#EXTINF:6.00,
seg-0002.ts
#EXT-X-ENDLIST
Le lecteur télécharge les segments dans l'ordre, met quelques secondes en cache d'avance et les pousse au décodeur. Comme chaque segment est un fichier HTTP indépendant, la mise en cache CDN ordinaire s'applique. La plupart des segments durent entre deux et dix secondes, ce qui maintient à la fois la latence de seek et la latence live à un niveau raisonnable.
Le comportement adaptatif (bitrate adaptatif) opère silencieusement. Le lecteur suit la vitesse de téléchargement de chaque segment et compare le débit obtenu aux balises de bande passante de la master playlist. Si les conditions se dégradent, le prochain segment récupéré viendra d'une variante à bitrate inférieur. Le basculement se produit aux frontières de segments, donc aucun ré-encodage ni reset de buffer n'est nécessaire.
Segments : .ts contre .m4s
La spécification HLS d'origine utilisait des segments MPEG-2 Transport Stream (.ts). Ce format a été choisi parce qu'il était déjà courant dans la diffusion TV numérique. À partir de la version 6 du protocole HLS, Apple a ajouté le support des segments MP4 fragmentés (.m4s). Les segments fMP4 partagent la même famille de conteneurs que les segments DASH, ce qui permet de publier un jeu unique de segments référencé à la fois par des manifestes HLS et DASH MPD. Cette approche unifiée s'appelle parfois CMAF.
HLS vs DASH
HLS et DASH sont les deux protocoles de streaming adaptatif que vous croiserez en pratique. Les deux fragmentent la vidéo en segments HTTP et décrivent la lecture via un manifeste texte. Les différences sont principalement historiques et politiques.
- Origine : HLS vient d'Apple. DASH est une norme ISO/IEC développée par MPEG.
- Format de manifeste : HLS utilise des playlists M3U8 en texte brut. DASH utilise un manifeste XML avec l'extension
.mpd. Voir notre entrée glossaire DASH MPD pour le décryptage complet. - Support navigateur natif : HLS se lit nativement dans Safari. DASH ne se lit nativement nulle part sur le web et requiert toujours un lecteur JavaScript comme dash.js ou Shaka Player.
- DRM : HLS utilise FairPlay sur les plateformes Apple. DASH embarque Widevine et PlayReady, raison pour laquelle la plupart des services de streaming premium utilisent DASH pour les clients non-Apple.
Pour un parcours plus conceptuel avec exemples et recettes de téléchargement, notre guide pratique sur la conversion M3U8 vers MP4 est le compagnon long de cette définition.
Quand vous croisez HLS dans la nature
HLS est partout. Vous le voyez sur Twitch, Vimeo Live, toutes les plateformes de cours compatibles iOS, la majorité des lecteurs de presse en ligne, et presque tous les déploiements Cloudflare Stream ou Bunny.net Stream. Le moyen le plus simple de le repérer : ouvrir les DevTools, basculer sur l'onglet Network, et filtrer sur m3u8. La première correspondance est presque toujours la master playlist. Si vous avez déjà eu besoin de récupérer l'URL M3U8 d'une page qui joue de la vidéo, nous détaillons le workflow exact dans DevTools dans notre guide pour trouver une URL m3u8.
Une fois l'URL en main, la question suivante est généralement comment sauvegarder le flux hors ligne. Comme la playlist référence des segments plutôt qu'un fichier unique, un simple clic droit "Enregistrer sous" vous donne un fichier texte inutile. Il vous faut un outil qui récupère chaque segment, les déchiffre éventuellement avec la clé AES-128, et les muxe en un MP4 unique. Notre guide sur télécharger un M3U8 chiffré couvre la mécanique complète, et la conversion M3U8 vers MP4 détaille les options ffmpeg, yt-dlp et extensions navigateur.
Chiffrement HLS et DRM
HLS prend en charge deux modèles de sécurité. L'option légère est le chiffrement AES-128 par segment, annoncé via la balise EXT-X-KEY dans la playlist. Le lecteur télécharge un fichier de clé de 16 octets et déchiffre chaque segment avec AES-128 en mode CBC. C'est le modèle utilisé par les configurations auto-hébergées et la plupart des plateformes de cours. Voir l'entrée glossaire AES-128 dédiée pour la mécanique complète.
L'option lourde est le DRM complet via FairPlay, Widevine ou PlayReady. La clé est livrée par un serveur de licences qui opère dans un environnement résistant à la falsification sur l'appareil. Les outils grand public ne peuvent pas contourner le DRM, seul le chemin média sécurisé de l'appareil peut déchiffrer ces flux.