L'encodage des flux vidéo en direct divise une vidéo en direct en petits blocs, les compresse et distribue les données vidéo via un CDN. Les mises à jour de ce processus accélèrent le streaming en direct (live streaming).
Cet article s'articule autour des points suivants :
Contenu associé
Diffusion HTTP en direct
Qu'est-ce que MPEG-DASH?
Qu’est-ce que le streaming en direct ?
Qu'est-ce que le streaming ?
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
Le streaming permet de diffuser des données sur Internet sans que les utilisateurs finaux ne les téléchargent entièrement. Le streaming en direct est un type de streaming dans lequel le flux est envoyé sur Internet en temps réel, sans être préalablement enregistré et stocké.
Le streaming de jeux vidéo, les flux de médias sociaux comme Periscope et Facebook Live ainsi que les émissions sportives professionnelles sur Internet sont des exemples de streaming en direct. Bien que l’audio et la vidéo puissent être diffusés en direct, cet article se concentrera sur le streaming vidéo en direct.
L’encodage vidéo est le processus de compression des données vidéo qui permet de les envoyer vers un autre emplacement. L’appareil qui reçoit le flux (par exemple, une tablette sur laquelle un utilisateur regarde son émission de télévision préférée) décode les données encodées. L’encodage vidéo suit des normes connues du public afin qu’une grand diversité d’appareils puisse interpréter le flux encodé.
L’encodage vidéo est nécessaire pour deux raisons essentielles :
Dans un flux vidéo en direct, un appareil prend des entrées audiovisuelles, les encode et les envoie au public en faisant toutes ces opérations en même temps. La partie encodage de ce processus est essentielle pour permettre à une variété de dispositifs utilisateurs de recevoir et lire la vidéo.
Un flux en direct à partir d’une source qui capture la vidéo (par exemple, une webcam) est envoyé à un serveur, où un protocole de streaming tel que HLS ou MPEG-DASH divisera le flux vidéo en segments plus petits de quelques secondes chacun.
Le contenu vidéo est ensuite encodé à l’aide d’une norme d’encodage. La norme d’encodage largement utilisée aujourd’hui s’appelle H.264, mais des normes comme VP9, AV1 et HEVC sont également de plus en plus courantes. Ce processus d’encodage comprime la vidéo en supprimant les informations visuelles redondantes. Par exemple, lorsqu’un flux représente quelqu’un parlant avec un ciel bleu en arrière-plan, le ciel bleu n’a pas besoin d’être rendu à nouveau à chaque seconde de vidéo, car il ne change pas beaucoup. Par conséquent, le ciel bleu peut être retiré de la plupart des images de la vidéo.
Les données vidéo compressées et segmentées sont ensuite distribuées à l’aide d’un réseau de distribution du contenu (CDN). Sans CDN, très peu de visionneurs pourront effectivement charger le flux en direct. La dernière section de cet article explique pourquoi.
La plupart des appareils mobiles ont un encodeur intégré, ce qui permet aux utilisateurs réguliers de lire un flux en direct sur les plates-formes de médias sociaux et via les applications de messagerie. Les marques et les entreprises qui souhaitent un flux de meilleure qualité utilisent leur propre logiciel et/ou leur propre matériel de codage.
Avec de nombreux flux en direct, les visionneurs ont toujours 20 à 30 secondes de latence. En d’autres termes, le contenu qu’ils regardent a 20 à 30 secondes de retard par rapport au temps réel. Cela s’explique en partie par le fait que chaque segment de vidéo doit être entièrement chargé avant de pouvoir être lu, et que le chargement de chaque segment de vidéo peut prendre plusieurs secondes.
Le codage par blocs donne une solution à ce retard. Ce processus fonctionne en découpant des blocs, c’est-à-dire en divisant les segments vidéo en morceaux encore plus petits. Ensuite, ces morceaux plus petits sont codés et les périphériques recevant le flux peuvent lire ces petits blocs avant le chargement complet du segment.
Les CDN sont essentiels pour le streaming en direct, car ils permettent de distribuer le flux à des utilisateurs situés dans des lieux très différents. En outre, les CDN disposent d’une bande passante beaucoup plus large que celle d’un serveur d’origine unique pour distribuer le flux. Sans CDN, le flux en direct peut facilement rencontrer des problèmes de bande passante.
Toutefois, la plupart des CDN doivent encore charger un segment de vidéo complet avant de pouvoir servir le segment à plusieurs utilisateurs à la fois. Cela réintroduit le problème de latence que l’encodage en blocs est censé résoudre.
Pour accélérer la diffusion en direct, Cloudflare propose une fonction appelée « accélération de la diffusion simultanée ». Le CDN de Cloudflare peut diffuser un segment de vidéo à plusieurs utilisateurs finaux en simultané pendant que ce dernier est encore en cours de chargement. Ce procédé permet d'éliminer le temps d'attente nécessaire au chargement du segment entier. Grâce à sa présence dans 330 villes réparties dans plus de 120 pays, le réseau mondial de Cloudflare permet aux utilisateurs du monde entier de se connecter à un flux en direct de haute qualité et en temps réel.