How does live stream encoding work? | Video encoding

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).

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Comprendre pourquoi les fichiers vidéo sont encodés
  • Découvrez comment fonctionne l'encodage de flux en direct
  • Découvrez comment des améliorations du processus d'encodage de flux en direct peuvent réduire la latence

Copier le lien de l'article

Qu’est-ce que le streaming en direct ?

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.

Qu’est-ce que l’encodage vidéo ?

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 :

  1. Les fichiers vidéo non compressés mettent beaucoup trop de temps à être envoyés sur Internet pour que la diffusion soit pratique.
  2. La vidéo doit être dans un format interprétable par tout type d’appareil utilisateur (smartphones, ordinateurs portables, PC, etc.).

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.

Comment fonctionne l’encodage du flux en direct ?

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.

The video content is then encoded using an encoding standard. The encoding standard in wide use today is called H.264, but standards like H.265, VP9, and AV1 are also in use. This encoding process compresses the video by removing redundant visual information. For example, in a stream of someone talking against the background of a blue sky, the blue sky does not need to be rendered again for every second of video, since it does not change a lot. Therefore, the blue sky can be stripped out from most frames of the video.

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.

Comment les nouvelles technologies accélèrent-elles le streaming en direct ?

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.

Comment les CDN permettent-ils d’accélérer le streaming en direct ?

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.

To speed up live streaming, Cloudflare offers a feature called concurrent streaming acceleration. The Cloudflare CDN can deliver a segment of video to multiple end users at once while it is still loading, eliminating the wait time while the entire segment loads. The Cloudflare global network spans 250 cities in more than 100 countries, enabling users around the world to tune into a high-quality, real-time live stream.