Le streaming est un méthode permettant de visionner des vidéos ou d'écouter de la musique sans avoir à télécharger de fichiers. Les performances du streaming peuvent être améliorées, et le temps de mise en mémoire tampon réduit, si le propriétaire des fichiers utilise un CDN.
Cet article s'articule autour des points suivants :
Contenu associé
Qu’est-ce que le streaming en direct ?
Encodage en direct
Diffusion HTTP en direct
Qu'est-ce que MPEG-DASH?
Formats d'encodage vidéo
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Les premiers sites web étaient de simples pages de texte parfois agrémentées d'une ou deux images. Aujourd'hui, cependant, toute personne disposant d'une connexion Internet suffisamment rapide peut lire en streaming des films en haute définition ou passer un appel vidéo sur Internet. Cela est rendu possible grâce à une technologie appelée « streaming ».
Le streaming est la transmission continue de fichiers audio ou vidéo d'un serveur à un client. En termes plus simples, le streaming est ce qui se produit lorsque les consommateurs regardent la télévision ou écoutent des podcasts sur des appareils connectés à Internet. Le streaming consiste à stocker à distance le fichier multimédia lu sur l'appareil du client et à le transmettre quelques secondes à la fois via Internet.
Le streaming fonctionne en temps réel, et il est plus efficace que le téléchargement de fichiers multimédias. Dans le cas d'un téléchargement de fichier vidéo, une copie du fichier entier est enregistrée sur le disque dur de l'appareil, et la vidéo ne peut pas être lue tant que le téléchargement du fichier entier n'est pas terminé. En revanche, si elle est diffusée en streaming, le navigateur lit la vidéo sans la copier ni l'enregistrer. La vidéo se charge petit à petit au lieu que le fichier complet soit chargé en une seule fois, et les informations que le navigateur charge ne sont pas enregistrées localement.
Pensez par exemple à la différence entre un lac et un ruisseau : les deux contiennent de l'eau, et un ruisseau peut contenir autant d'eau qu'un lac, mais dans le cas d'un ruisseau, l'eau ne se trouve pas au même endroit en même temps. Un fichier vidéo téléchargé ressemble davantage à un lac dans la mesure où il occupe beaucoup d'espace sur le disque dur (et il faut beaucoup de temps pour déplacer un lac). Le streaming vidéo ressemble davantage à un ruisseau ou à une rivière, puisque les données de la vidéo sont transmises en continu et rapidement au navigateur de l'utilisateur.
Tout comme les autres données qui sont envoyées sur Internet, les données audio et vidéo sont divisées en paquets de données. Chaque paquet contient une petite partie du fichier, et un lecteur audio ou vidéo intégré au navigateur de l'appareil client récupère le flux de paquets de données et l'interprète comme un fichier vidéo ou audio.
Certaines méthodes de streaming utilisent UDP, et d'autres TCP. UDP et TCP sont des protocoles de transport , ce qui signifie qu'ils sont utilisés pour déplacer des paquets de données sur les réseaux. Ils sont tous deux utilisés avec le protocole Internet (IP) . TCP ouvre une connexion dédiée avant de transmettre des données et s'assure que tous les paquets de données arrivent dans l'ordre. Contrairement à TCP, UDP ne fait rien de tout cela. Par conséquent, TCP est plus fiable, mais la transmission de données via UDP ne prend pas autant de temps que via TCP, bien que certains paquets soient perdus en cours de route.
Si le protocole TCP est comparable à un service de livraison de colis qui exige que le destinataire signe pour pouvoir récupérer son colis, le protocole UDP ressemble quant à lui à un service de livraison qui laisse les colis sur le palier sans frapper à la porte pour obtenir une signature. Le service de livraison TCP perd moins de colis, mais le service de livraison UDP est plus rapide, car les colis peuvent être déposés même si personne n'est là pour signer le bordereau de livraison.
Pour le streaming, dans certains cas, la vitesse est bien plus importante que la fiabilité. Par exemple, si une personne participe à une vidéoconférence, elle préférera interagir avec les autres participants en temps réel plutôt que d'attendre la livraison de chaque donnée. Par conséquent, la perte de quelques paquets de données n'est pas un problème majeur et UDP doit être utilisé.
Dans d'autres cas, la fiabilité est plus importante pour le streaming. Par exemple, HTTP live streaming (HLS) et MPEG-DASH sont des protocoles de streaming qui utilisent TCP pour le transport. De nombreux services de vidéo à la demande utilisent TCP.
Les lecteurs de médias en streaming chargent quelques secondes du flux à l'avance afin de pouvoir poursuivre la lecture de la piste audio ou vidéo si la connexion est brièvement interrompue. C'est ce qu'on appelle la mise en mémoire tampon. La mise en mémoire tampon permet de garantir une lecture fluide et continue des vidéos. Cependant, lorsque la connexion est lente ou que le réseau est très sollicité, la mise en mémoire tampon d'une vidéo peut prendre beaucoup de temps.
La diffusion subit les mêmes types de retard et de dégradation des performances que les autres types de contenu web. Le contenu diffusé en continu étant stocké ailleurs, le lieu d'hébergement joue un rôle important, comme c'est le cas pour tous les types de contenu accessible sur Internet. Si un utilisateur à New York essaie de lire une vidéo depuis un serveur Netflix en Californie, le contenu vidéo doit parcourir 4 800 km pour atteindre l'utilisateur. La mise en mémoire tampon de la vidéo sera donc longue (il est même possible que la vidéo ne soit pas lisible). C'est pour cette raison que Netflix et d'autres plateformes de diffusion en continu ont largement recours aux réseaux de distribution de contenu (CDN), qui stockent le contenu partout dans le monde, beaucoup plus près des utilisateurs.
Les CDN ont un effet positif considérable sur les performances de diffusion. La solution Cloudflare Stream s'appuie sur le CDN de Cloudflare pour stocker du contenu vidéo dans les datacenters Cloudflare du monde entier. Cette répartition permet d'obtenir une réduction de la latence (et donc des vidéos qui démarrent plus rapidement), ainsi qu'une réduction de la mise en mémoire tampon.