Explorez une architecture simple de service de streaming vidéo
Le service de streaming vidéo fait référence à un service qui transmet des données vidéo en temps réel. Étant donné que ces services transmettent des données vidéo en temps réel, une technologie est nécessaire pour compresser et transmettre les données en temps réel. Ces technologies incluent la capture vidéo, la compression, l’encodage, le décodage et la lecture.
Les services tels que Netflix, Disney+, YouTube et Twitch sont des services qui fournissent des services de streaming vidéo. Ces services sont utilisés par de nombreux utilisateurs dans le monde et traitent de grandes quantités de données. En raison du développement des réseaux, les services de streaming deviennent de plus en plus avancés et des services fournissant de la vidéo haute définition tels que 4K et 8K font également leur apparition.
Je suis curieux de connaître la structure de ces services, alors examinons une architecture simple de service de streaming vidéo. Il a différentes structures en fonction du service, mais cette fois nous examinerons une architecture simple de service de streaming vidéo.
Le service actuel est beaucoup plus complexe et utilise diverses technologies, veuillez donc l'utiliser à titre de référence uniquement.
Vous trouverez ci-dessous une architecture simple de service de streaming vidéo.
Le service de streaming vidéo comprend en grande partie SendDevice, qui transmet les données vidéo, Server, qui traite les données vidéo sur le serveur, et WatchDevice, qui reçoit les données vidéo.
Chacun remplit les rôles suivants.
SendDevice : responsable de la capture et de la compression des données vidéo.
Serveur : responsable du traitement et de la transmission des données vidéo.
WatchDevice : responsable de la réception et de la lecture des données vidéo du serveur.
Schéma d'architecture du service de streaming vidéo
Lors de la diffusion sur des services tels que Youtube ou Twitch, SendDevice peut être l'ordinateur ou l'appareil mobile de l'utilisateur de diffusion.
SendDevice est responsable de la capture et de la compression des données vidéo. Dans cette structure, le processus de capture et de compression des données vidéo est un processus de traitement des données vidéo en temps réel, une vitesse et une stabilité élevées sont donc requises.
La raison pour laquelle les données vidéo sont compressées avant de les envoyer au serveur est d'économiser la bande passante du réseau. Les coûts de réseau sont un problème qui nécessite beaucoup d'argent. Étant donné que les données vidéo sont une continuation des données d'image, la compression des donn ées d'image peut économiser de la bande passante.
Compressez les données vidéo à l'aide de codecs de compression vidéo tels que H.264, H.265 et de codecs de compression audio tels que AAC et MP3.
Dans SendDevice, les données vidéo compressées sont envoyées au serveur.
Cependant, il existe des cas où SendDevice transmet les données vidéo au serveur sans compression. Dans ce cas, un processus supplémentaire de compression des données vidéo sur le serveur est requis.
Le serveur est responsable du traitement et de la transmission des données vidéo. Le serveur reçoit les données vidéo, les traite et les transmet à WatchDevice.
Le serveur peut être constitué d'un ou de plusieurs serveurs. Les services à grande échelle se composent de plusieurs serveurs.
Préparer des données vidéo de différentes résolutions telles que 540p, 720p, 1080p, 4K, etc. et transmettre des données vidéo de résolution appropriée à la demande de l'utilisateur.
Les données vidéo avec une résolution appropriée doivent être transmises en fonction des conditions du réseau de l'utilisateur.
Si des données vidéo de résolution appropriée sont transmises à la demande de l'utilisateur, celui-ci peut rapidement regarder la vidéo.
Le processus de transmission de données vidéo d'une résolution appropriée en fonction de la demande de l'utilisateur est appelé Adaptive Bitrate Streaming.
Le serveur reçoit et traite les données vidéo comme suit.
Effectue le processus de réception des données vidéo et de leur division en segments.
Un segment est une unité qui divise et transmet des données vidéo. Les segments sont divisés en certaines longueurs et transmis, et WatchDevice reçoit et lit les segments.
Le processus de division des données vidéo initialement entrées en segments est appelé segmentation.
Les segments sont transmis à l'aide de protocoles tels que HTTP Live Streaming (HLS) ou MPEG-DASH.
Sans diviser les données vidéo, les utilisateurs ne pourront pas lire la vidéo rapidement. La transmission par segments permet aux utilisateurs de lire la vidéo rapidement.
Envoyer le segment au CDN.
CDN signifie Content Delivery Network.
CDN se compose de serveurs répartis dans le monde entier et peut fournir rapidement du contenu aux utilisateurs.
WatchDevice est responsable de la réception et de la lecture des données vidéo du serveur. Le WatchDevice peut être l'ordinateur ou l'appareil mobile de l'utilisateur qui regarde la vidéo.
WatchDevice reçoit des segments de CDN et les lit. Un segment est constitué de données vidéo divisées en certaines longueurs. Les segments sont transmis à l'aide de protocoles tels que HTTP Live Streaming (HLS) ou MPEG-DASH.
WatchDevice reçoit le segment, le décode et le lit. Le décodage fait référence au processus de décodage des données vidéo et la lecture fait référence au processus d'affichage des données vidéo sur l'écran.