Qu'est-ce que le streaming HTTP en direct ? | Streaming HLS

Le streaming HTTP en direct (HLS) est un protocole de streaming vidéo largement utilisé qui peut fonctionner sur presque tous les serveurs et qui est pris en charge par la plupart des appareils. Le HLS permet aux appareils clients de s'adapter de façon transparente aux conditions changeantes du réseau en augmentant ou en diminuant la qualité du flux.

Share facebook icon linkedin icon twitter icon email icon

Diffusion en direct de HTTP

Objectifs d’apprentissage

Après avoir lu cet article, vous :

  • Définir la diffusion en direct HTTP (HLS)
  • Découvrir comment le HLS fonctionne
  • Découvrez les avantages du streaming adaptatif

Qu’est-ce que le streaming HTTP en direct (HLS) ?

Le streaming HTTP en direct (HLS) est l’un des protocoles de streaming vidéo les plus utilisés. Bien qu’il soit appelé streaming HTTP « en direct », il est utilisé à la fois pour le streaming à la demande et le streaming en direct. Le HLS décompose les fichiers vidéo en fichiers HTTP téléchargeables plus petits et les fournit en utilisant le protocole HTTP. Les appareils clients chargent ces fichiers HTTP et les lisent ensuite en tant que vidéo.

L’un des avantages de HLS est que tous les appareils connectés à Internet prennent en charge HTTP, ce qui le rend plus simple à mettre en œuvre que les protocoles de streaming qui nécessitent l’utilisation de serveurs spécialisés. Autre avantage, un flux HLS peut augmenter ou diminuer la qualité vidéo en fonction des conditions du réseau sans interrompre la lecture. C’est la raison pour laquelle la qualité vidéo peut s’améliorer ou se détériorer au milieu d’une vidéo pendant qu’un utilisateur la regarde. Cette fonctionnalité est connue sous le nom de « streaming à débit adaptatif » (adaptive bitrate streaming). Sans elle, des conditions réseau lentes peuvent empêcher complètement la lecture d’une vidéo.

Le HLS a été développé par Apple pour être utilisé sur les produits Apple, mais il est désormais utilisé sur une large gamme d’appareils.

Qu'est-ce que le streaming ?

Le streaming est un moyen de fournir des médias visuels et audio aux utilisateurs via Internet. Il fonctionne en envoyant continuellement de petites parties du fichier multimédia à l’appareil d’un utilisateur au lieu d’envoyer la totalité du fichier en une fois. Le fichier multimédia d’origine est stocké à distance ou, dans le cas du streaming en direct, il est créé en temps réel avec une caméra ou un microphone à distance. De cette façon, la vidéo ou l’audio peuvent être lus sans que l’appareil de l’utilisateur ne télécharge au préalable le fichier complet.

Qu’est-ce que HTTP ?

HTTP est un protocole de la couche d’application permettant de transférer des informations entre des appareils connectés à un réseau. Tous les sites web et applications accessibles aux utilisateurs réguliers fonctionnent sur HTTP. Le transfert de données via HTTP est généralement basé sur des demandes et des réponses. Presque tous les messages HTTP sont soit une requête, soit une réponse à une requête.

Avec le streaming sur HTTP, le modèle de requête-réponse standard ne s’applique pas. La connexion entre le client et le serveur reste ouverte pendant la durée du flux et le serveur envoie des données vidéo au client afin que le client n’ait pas à demander chaque segment de données vidéo.

Comment fonctionne TLS ?

Serveur : un flux HLS provient d’un serveur où le fichier multimédia est stocké (dans le cas du streaming à la demande) ou bien où le flux est créé (dans le cas du streaming en direct). Comme le HLS est basé sur HTTP, n’importe quel serveur web ordinaire peut être à l’origine du flux.

Deux processus principaux se produisent sur le serveur :

  1. Encodage : les données vidéo sont reformatées afin que tout appareil puisse les reconnaître et les interpréter. Le HLS doit utiliser l’encodage H.264 ou H.265.
  2. Segmentation : la vidéo est divisée en segments d’une durée de quelques secondes. La longueur des segments peut varier, bien que la longueur par défaut soit de 10 secondes.
    • En plus de diviser la vidéo en segments, le HLS crée un fichier d’indexation des segments vidéo pour enregistrer leur ordre.
    • Le HLS crée également plusieurs ensembles de segments en double avec différents niveaux de qualité : 480p, 720p, 1080p, etc.

Distribution : les segments vidéo encodés sont envoyés sur les appareils clients via Internet lorsque ces derniers demandent le flux. En général, un réseau de distribution du contenu (CDN) permet de distribuer le flux dans des zones géographiques diverses. Un CDN mettra également le flux en cache pour le diffuser aux clients encore plus rapidement.

Appareil client : le dispositif client est l’appareil qui reçoit le flux et lit la vidéo (par exemple, un smartphone ou l’ordinateur portable d’un utilisateur). L’appareil client utilise le fichier d’indexation comme référence pour assembler la vidéo dans l’ordre, et il passe d’une qualité supérieure à une image de moindre qualité (et vice versa) en fonction des besoins.

Qu’est-ce que le streaming à débit adaptatif en HLS ?

L’un des avantages du HLS par rapport à certains autres protocoles de streaming est le débit adaptatif, appelé également diffusion en flux adaptatif, qui a la possibilité d’ajuster la qualité vidéo au milieu d’un flux lorsque les conditions du réseau changent. Cette capacité permet de ne pas interrompre la lecture vidéo, même si les conditions du réseau se détériorent. Inversement, le streaming à débit adaptatif maximise également la qualité vidéo pour qu’elle soit aussi élevée que la capacité que le réseau peut prendre en charge.

Si le réseau ralentit, le lecteur vidéo de l’utilisateur le détecte et le streaming à débit adaptatif diminue la qualité du flux afin que la vidéo ne s’arrête pas. Lorsque la bande passante réseau augmente, le streaming à débit adaptatif améliore la qualité du flux.

Le streaming à débit adaptatif est possible car le HLS crée plusieurs flux segmentés en double avec différents niveaux de qualité au cours du processus de segmentation. Le lecteur vidéo de l’utilisateur peut passer en toute transparence d’un flux à un autre en cours de lecture de la vidéo.

Le HLS utilise-t-il le protocole TCP ou UDP comme protocole de transport ?

TCP et UDP sont des protocoles de transport, ce qui signifie qu’ils sont responsables de la diffusion de contenu sur Internet. Le protocole TCP tend à fournir des données de manière plus fiable qu’UDP, mais ce dernier est beaucoup plus rapide, même si certaines données peuvent être perdues pendant le transit.

Parce que le protocole UDP est plus rapide, de nombreux protocoles de streaming utilisent UDP au lieu de TCP. Le HLS, cependant, utilise TCP pour plusieurs raisons :

  1. Le HLS est en HTTP et le protocole HTTP est conçu pour être utilisé avec TCP (à quelques exceptions près).
  2. L’Internet moderne est plus fiable et plus efficace qu’il ne l’était lorsque le streaming a été développé pour la première fois. Dans de nombreuses régions du monde aujourd’hui, la connectivité des utilisateurs s’est considérablement améliorée, en particulier pour les connexions mobiles. Par conséquent, les utilisateurs ont suffisamment de bande passante pour prendre en charge la diffusion de chaque image vidéo.
  3. Le streaming à débit adaptatif permet de compenser la transmission de données potentiellement plus lente de TCP.
  4. Le streaming HLS n’a pas besoin d’être « en temps réel », comme c’est le cas avec les connexions de visioconférence. Quelques secondes supplémentaires de décalage n’ont pas autant d’impact sur l’expérience utilisateur que des images vidéo manquantes.

Quels autres protocoles sont couramment utilisés pour le streaming ?

Il existe un certain nombre de protocoles similaires au HLS, comme MPEG-DASH et HDS, qui fonctionnent également sur HTTP et offrent un streaming à débit adaptatif. Adobe Flash, qui fonctionne avec le protocole RTMP, était autrefois la principale technologie utilisée pour le streaming vidéo, mais de nombreux navigateurs ne prennent plus en charge Flash. Le RTMP est encore largement utilisé.

Cloudflare prend-il en charge le streaming en direct HTTP ?

Cloudflare prend en charge HLS pour le streaming à la demande et en direct. Cloudflare Stream intègre le stockage vidéo, l’encodage et un lecteur personnalisable avec le réseau Cloudflare rapide, sécurisé et fiable, qui couvre 200 villes dans plus de 100 pays. Cela permet aux utilisateurs du monde entier de recevoir des flux HLS rapides et de haute qualité. En savoir plus sur Cloudflare Stream