Fermer

octobre 1, 2024

Avantages de HLS par rapport aux autres protocoles de streaming

Avantages de HLS par rapport aux autres protocoles de streaming


Dans un paysage numérique en évolution rapide, un changement important se dessinait. À mesure qu’Internet se développait, l’appétit pour expériences multimédia immersives. Partout dans le monde, les gens avaient soif de pouvoir regarder des vidéos, écouter de la musique et se plonger dans des histoires captivantes, le tout accessible du bout des doigts. Cependant, cet enthousiasme a posé un défi : fournir un contenu fluide sur une gamme toujours croissante d’appareils.

En 2009, au cœur des salles de création d’Apple, une équipe d’ingénieurs visionnaires s’est réunie pour s’attaquer à ce problème précis. Ils ont compris que l’avenir du divertissement reposait sur la capacité de diffuser de manière fluide et fluide des vidéos et des fichiers audio de haute qualité sur différents appareils.

Inspirés par ce besoin, les ingénieurs se sont lancés dans la création d’un nouveau protocole de streaming capable de s’adapter à diverses conditions de réseau et capacités des appareils. Après des mois de collaboration et de réflexion incessante, l’équipe a dévoilé en 2009 sa création révolutionnaire : Diffusion HTTP en direct, ou HLS. Ce protocole révolutionnaire a été conçu pour fournir du contenu vidéo, audio et multimédia de haute qualité sur Internet, s’adressant en particulier aux appareils exécutant iOS, macOS, tvOS et au-delà.

Voici le schéma qui illustre le fonctionnement de HLS :

Schéma fonctionnel HLS complet

Schéma fonctionnel HLS complet

Pour donner vie à leur vision, les ingénieurs ont mis au point une méthode intelligente : ils diviseraient le contenu multimédia en segments plus petits et gérables, chacun durant entre six et dix secondes. Ils ont décidé que ces segments seraient enregistrés dans des formats spécifiques, en choisissant le robuste .ts (MPEG-2 Transport Stream). Chacun de ces fichiers contenait une partie du média, attendant d’être demandée par des téléspectateurs avides de divertissement.

En savoir plus: Streaming vidéo adaptatif et structure de fichiers HLS

MasterPlaylistFichier-relations

La liste de lecture principale inclut l’emplacement de chaque liste de lecture multimédia spécifique dans le flux. Cette relation est illustrée dans l’image. De plus, la liste de lecture principale offre des informations clés telles que la bande passante, la résolution et le codec. Le joueur s’appuie sur ces données pour sélectionner la variante la plus adaptée à l’appareil et à la bande passante actuellement disponible.

Pour guider le public tout au long de ce voyage segmenté, les ingénieurs ont créé un fichier de playlist spécial avec l’extension .m3u8. Cette liste de lecture faisait office d’index, répertoriant tous les segments multimédias disponibles pour la visualisation. Dans ses lignes se trouvaient les URL pointant vers chaque segment, soigneusement classées selon différentes qualités vidéo.

Mais ce n’était pas tout : les ingénieurs ont créé une liste de lecture principale qui a servi de grande carte pour toute l’aventure du streaming. Cette liste de lecture principale fournissait les adresses de chaque liste de lecture multimédia, garantissant ainsi que les téléspectateurs pouvaient naviguer sans effort parmi la myriade d’options qui s’offraient à eux.

Il existe différents protocoles de streaming tels que RTMP (Real-Time Messaging Protocol), RTSP (Real-Time Streaming Protocol), WebRTC (Web Real-Time Communication) et SRT (Secure Reliable Transport). Voyons maintenant pourquoi les développeurs choisissent souvent d’utiliser HLS (HTTP Live Streaming).

Avantage de HLS par rapport aux autres protocoles de streaming :

Apple utilise HLS par rapport à d’autres protocoles de streaming en raison de sa compatibilité native avec les appareils Apple, de son streaming à débit adaptatif pour une lecture plus fluide dans diverses conditions de réseau, de la prise en charge du cryptage et du DRM et de la simplicité de mise en œuvre via le format .m3u8. De plus, HLS est basé sur HTTP, ce qui le rend compatible avec les pare-feu et facilement évolutif via les réseaux de diffusion de contenu (CDN) existants.

Contrôle de l’expérience utilisateur

HLS avait un guide humble mais élégant connu sous le nom de fichier .m3u8. C’était simple : une extension textuelle du format m3u traditionnel. Chaque ligne du fichier .m3u8 racontait une histoire claire, représentant un segment multimédia ou un flux de qualité différente. Les créateurs l’ont adoré car il était facile à lire, à modifier et à déboguer. En cas de problème, ils pouvaient analyser rapidement le fichier, ajuster quelques lignes et le renvoyer.

TIRETd’autre part, utilisait une carte plus complexe appelée fichier MPD, écrite dans le langage complexe XML. Bien que puissant, le MPD était verbeux et plein de détails supplémentaires qui nécessitaient des outils spéciaux et des efforts supplémentaires pour le décoder. Pour les créateurs, éditer ou déboguer manuellement les fichiers MPD XML de DASH ressemblait à naviguer dans une forêt dense : plus lent et plus difficile que le chemin simple de HLS.

En savoir plus: Comment lire le flux en direct HLS à l’aide d’ExoPlayer

Focus sur le streaming basé sur HTTP

L’un des aspects les plus magiques de HLS était qu’il fonctionnait via HTTP, le même protocole utilisé pour naviguer sur les sites Web. Cela l’a rendu compatible avec les pare-feu, permettant aux flux de traverser les réseaux sans être bloqués et facilement évolutif à l’aide des réseaux de diffusion de contenu (CDN). Peu importe où se trouvent les utilisateurs, HLS s’assure que le contenu leur parvienne rapidement et de manière fiable. Contrairement à des protocoles tels que RTMP (Real-Time Messaging Protocol), qui nécessitaient une infrastructure dédiée et manquaient de flexibilité, HLS a permis à Apple de rationaliser les performances et de réduire la complexité, rendant ainsi la diffusion de contenu plus efficace et plus accessible.

Streaming à débit adaptatif

HLS avait une compatibilité naturelle avec les appareils Apple, s’intégrant sans effort dans l’écosystème. Mais ce qui a véritablement enchanté les ingénieurs, c’est sa capacité à s’ajuster à la volée. HLS utilisait un streaming à débit adaptatif, ce qui signifiait que quelle que soit la force ou la faiblesse de la connexion Internet, la lecture restait fluide. Alors que les protocoles non adaptatifs comme le Real-Time Messaging Protocol (RTMP) n’offraient pas le même niveau de flexibilité.

Sécurité et intégration DRM

La sécurité était une autre préoccupation, et HLS était doté d’un cryptage et d’une gestion des droits numériques (DRM) intégrés pour protéger les précieux contenus numériques. C’était comme placer un bouclier protecteur sur chaque vidéo, fichier musical et flux en direct, les protégeant ainsi de tout accès non autorisé. Mieux encore, HLS était simple à mettre en œuvre, grâce au format .m3u8, un moyen simple d’organiser et de diffuser des fichiers multimédias.

Compatibilité avec les standards Web modernes

À mesure que le monde numérique évoluait, les anciens protocoles comme Flash, RTMP et RTSP sont devenus obsolètes. Conscient de cela, Apple a adopté HLS, optimisé pour le Web moderne et parfaitement intégré au HTML5 et aux normes ouvertes.

Intégration transparente avec l’écosystème Apple

HLS s’intègre de manière transparente aux appareils Apple, garantissant des performances multimédia constantes et une optimisation pour le matériel propriétaire comme les puces des séries A et M. Cette standardisation évite la fragmentation due à plusieurs protocoles de streaming, simplifiant ainsi le développement et améliorant la fiabilité dans l’ensemble de l’écosystème Apple.

HLS prend en charge le streaming à faible latence

Pour répondre à la demande de contenu en temps réel, Apple a introduit le HLS à faible latence (HLS LL), réduisant ainsi le délai entre la diffusion et la lecture. Cela a fait de HLS la solution idéale pour les sports en direct, les événements et les interactions en temps réel. Grâce à cette amélioration, Apple a permis à HLS de rester compétitif par rapport à d’autres protocoles à faible latence comme WebRTC, renforçant ainsi son engagement à offrir à ses utilisateurs des expériences de streaming en temps réel de pointe.

En savoir plus: Test de charge du flux HLS à l’aide de JMeter

À quoi ressemble la HLS-MasterPlaylist (.m3u8)

Pour un exemple d’URL HLS « http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8 »ci-dessous se trouve la « playlist multimédia » disponible. Vous pouvez voir que cette « playlist principale«  il y en avait 8 différents « listes de lecture multimédia » références.

MasterPlaylistFichier-Image

Fichier manifeste multimédia (.m3u8)

Dans l’image ci-dessus, le « #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDE PASSANTE=688301 »fait partie d’une liste de lecture HLS (.m3u8) et fournit des métadonnées sur une variante de flux spécifique dans une configuration de streaming à débit adaptatif. Voici une répartition de ses composants :

  • #EXT-X-STREAM-INF : Cette balise indique que l’URL suivante dans la playlist pointe vers une variante de flux avec des attributs spécifiques.
  • ID-PROGRAMME=1 : Ce paramètre identifie le programme auquel appartient ce flux. Si plusieurs programmes sont présents dans la playlist, cet identifiant permet de les distinguer.
  • BANDE PASSANTE=688301 : Ce paramètre spécifie le débit moyen du flux en bits par seconde. Dans ce cas, le flux a une bande passante d’environ 688 kbps. Cette valeur est cruciale pour le streaming à débit adaptatif, permettant au lecteur de sélectionner le flux approprié en fonction de la bande passante disponible de l’utilisateur.

Si nous examinons le fichier de playlist initial, il apparaîtra comme suit :

Image du fichier de flux de transport (.ts)

flux de transport (.ts) pour une bande passante spécifique

Dans l’image ci-dessus :

  • #EXTM3U : indique le début du fichier.
  • #EXTINF : fournit des informations telles que la durée de la piste et le nom de la chaîne.
  • #EXT-X-TARGETDURATION : définit la durée maximale (en secondes) de tout segment multimédia de la liste de lecture.
  • #EXT-X-MEDIA-SEQUENCE : spécifie le numéro de séquence du premier segment multimédia de la liste de lecture. Ce numéro de séquence augmente à mesure que de nouveaux segments sont ajoutés, en particulier dans les scénarios de diffusion en direct.
  • #EXTINF : Cette balise inclut généralement des métadonnées sur une piste, telles que sa durée et son titre.
  • #EXT-X-ENDLISTE : Il indique la fin d’une playlist. Lorsqu’un lecteur rencontre cette balise, il sait qu’il n’y a plus de segments à lire, ce qui est particulièrement pertinent pour les playlists « à la demande ».

Dans l’image ci-dessus, il y a 535 Transport Streams (.ts) pour la première liste de lecture multimédia. ces fichiers 535 .ts durent 10 secondes de plus, la durée du contenu serait donc (535*10) / 60 = 89,16 min = 1 heure 29 secondes (en durée)

Conclusion

HLS est privilégié pour sa large compatibilité avec les appareils, son streaming à débit adaptatif, son évolutivité et sa capacité à gérer les conditions fluctuantes du réseau tout en offrant de solides fonctionnalités de sécurité. Même si sa latence initiale plus élevée constituait un inconvénient, l’avènement de HLS à faible latence (LL-HLS) l’a rendu compétitif même pour la diffusion en direct en temps réel.

Selon le cas d’utilisation, comme les événements en direct, le streaming à l’échelle mondiale ou la vidéo à la demande, HLS surpasse souvent ou est plus pratique que d’autres technologies de streaming comme RTSP, RTMP ou même WebRTC.






Source link