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 est une méthode de livraison de données sur Internet sans que les utilisateurs finaux ne téléchargent entièrement les données. 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 et 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 segmentées compressées sont ensuite distribuées à l'aide d'un réseau de distribution de contenu (CDN). Sans CDN, très peu de viewers pourront réellement charger le flux en direct (la dernière section de cet article en explique la raison).

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 plateformes 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 viewers connaissent toujours une latence de 20 à 30 secondes. En d'autres termes, le contenu qu'ils consultent a 20 à 30 secondes de retard sur le temps réel. Ce retard est dû en partie au fait que chaque segment de vidéo doit être entièrement chargé avant de pouvoir être lu, et que chaque segment de vidéo peut prendre plusieurs secondes avant d'être chargé.

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 aux utilisateurs à des emplacements très différents. De plus, les CDN ont beaucoup plus de bande passante pour distribuer le flux qu'un seul serveur d'origine. 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 200 cities in more than 100 countries, enabling users around the world to tune into a high-quality, real-time live stream.