Comment fonctionne l'encodage en direct ? | Encodage vidéo

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

Share facebook icon linkedin icon twitter icon email icon

Encodage en direct

Objectifs d’apprentissage

Après avoir lu cet article, vous pourrez :

  • 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

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.

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.

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.

Pour accélérer le streaming en direct, Cloudflare propose une fonction appelée « accélération de la diffusion simultanée ». Le CDN de Cloudflare peut fournir un segment de vidéo à plusieurs utilisateurs finaux en même temps pendant qu’il est encore en cours de chargement, ce qui élimine le temps d’attente pendant que le segment entier se charge. Le réseau mondial de Cloudflare couvre 200 villes dans plus de 100 pays, permettant aux utilisateurs du monde entier de se connecter à un flux en direct de haute qualité en temps réel.