Zum Hauptinhalt springen

Entdecken Sie eine einfache Video-Streaming-Dienstarchitektur

  • Video-Streaming-Dienst bezieht sich auf einen Dienst, der Videodaten in Echtzeit überträgt. Da diese Dienste Videodaten in Echtzeit übertragen, ist Technologie erforderlich, um Daten in Echtzeit zu komprimieren und zu übertragen. Zu diesen Technologien gehören Videoaufnahme, Komprimierung, Kodierung, Dekodierung und Wiedergabe.
  • Dienste wie Netflix, Disney+, YouTube und Twitch sind Dienste, die Video-Streaming-Dienste anbieten. Diese Dienste werden von vielen Nutzern weltweit genutzt und verarbeiten große Datenmengen. Aufgrund der Entwicklung von Netzwerken werden Streaming-Dienste immer fortschrittlicher und es entstehen auch Dienste, die hochauflösende Videos wie 4K und 8K bereitstellen.
  • Ich bin neugierig auf die Struktur dieser Dienste. Werfen wir also einen Blick auf die einfache Architektur eines Video-Streaming-Dienstes. Je nach Dienst hat es unterschiedliche Strukturen, aber dieses Mal werden wir uns eine einfache Video-Streaming-Dienstarchitektur ansehen.
    • Der eigentliche Dienst ist viel komplexer und nutzt eine Vielzahl von Technologien. Bitte verwenden Sie ihn daher nur als Referenz.

Architektur des Video-Streaming-Dienstes

  • Nachfolgend finden Sie eine einfache Video-Streaming-Dienstarchitektur.
  • Der Video-Streaming-Dienst besteht größtenteils aus SendDevice, das Videodaten überträgt, Server, der Videodaten auf dem Server verarbeitet, und WatchDevice, das Videodaten empfängt.
  • Jeder übernimmt die folgenden Rollen.
    • SendDevice: Verantwortlich für die Erfassung und Komprimierung von Videodaten.
    • Server: Verantwortlich für die Verarbeitung und Übertragung von Videodaten.
    • WatchDevice: Verantwortlich für den Empfang und die Wiedergabe von Videodaten vom Server.

Architekturdiagramm des Video-Streaming-Dienstes

SendDevice

  • Beim Senden über Dienste wie YouTube oder Twitch kann SendDevice der Computer oder das Mobilgerät des sendenden Benutzers sein.
  • SendDevice ist für die Erfassung und Komprimierung von Videodaten verantwortlich. In dieser Struktur handelt es sich bei der Erfassung und Komprimierung von Videodaten um einen Prozess zur Verarbeitung von Videodaten in Echtzeit, daher sind hohe Geschwindigkeit und Stabilität erforderlich.
  • Videodaten werden vor dem Senden an den Server komprimiert, um Netzwerkbandbreite zu sparen. Netzwerkkosten sind ein Problem, das viel Geld erfordert. Da Videodaten eine Fortsetzung von Bilddaten sind, kann durch die Komprimierung von Bilddaten Bandbreite eingespart werden.
    • Komprimieren Sie Videodaten mit Videokomprimierungscodecs wie H.264, H.265 und Audiokomprimierungscodecs wie AAC und MP3.
  • In SendDevice werden komprimierte Videodaten an den Server gesendet.
    • Es gibt jedoch Fälle, in denen SendDevice Videodaten ohne Komprimierung an den Server überträgt. In diesem Fall ist ein zusätzlicher Prozess der Komprimierung der Videodaten auf dem Server erforderlich.

Server

  • Der Server ist für die Verarbeitung und Übertragung der Videodaten verantwortlich. Der Server empfängt Videodaten, verarbeitet sie und übermittelt sie an WatchDevice.
  • Der Server kann aus einem oder mehreren Servern bestehen. Große Dienste bestehen aus mehreren Servern.
  • Bereiten Sie Videodaten mit verschiedenen Auflösungen wie 540p, 720p, 1080p, 4K usw. vor und übertragen Sie Videodaten mit der entsprechenden Auflösung auf Benutzeranfrage.
    • Videodaten mit entsprechender Auflösung müssen abhängig von den Netzwerkbedingungen des Benutzers übertragen werden.
    • Wenn auf Wunsch des Benutzers Videodaten mit entsprechender Auflösung übertragen werden, kann der Benutzer das Video schnell ansehen.
    • Der Prozess der Übertragung von Videodaten mit geeigneter Auflösung entsprechend der Benutzeranforderung wird als Adaptive Bitrate Streaming bezeichnet.
  • Der Server empfängt und verarbeitet Videodaten wie folgt.
    • Führt den Prozess des Empfangens von Videodaten und deren Aufteilung in Segmente durch.
      • Ein Segment ist eine Einheit, die Videodaten aufteilt und überträgt. Segmente werden in bestimmte Längen unterteilt und übertragen, und WatchDevice empfängt die Segmente und spielt sie ab.
      • Der Vorgang der Aufteilung der ursprünglich eingegebenen Videodaten in Segmente wird als Segmentierung bezeichnet.
      • Segmente werden mithilfe von Protokollen wie HTTP Live Streaming (HLS) oder MPEG-DASH übertragen.
      • Ohne Aufteilung der Videodaten können Benutzer das Video nicht schnell abspielen. Durch die Übertragung in Segmenten können Benutzer das Video schnell abspielen.
    • Segment an CDN senden.
      • CDN steht für Content Delivery Network.
      • CDN besteht aus weltweit verteilten Servern und kann Inhalte schnell an Benutzer liefern.

WatchDevice

  • WatchDevice ist für den Empfang und die Wiedergabe von Videodaten vom Server verantwortlich. Das WatchDevice kann der Computer oder das mobile Gerät des Benutzers sein, das das Video ansieht.
  • WatchDevice empfängt Segmente vom CDN und spielt sie ab. Ein Segment besteht aus Videodaten, die in bestimmte Längen unterteilt sind. Segmente werden mithilfe von Protokollen wie HTTP Live Streaming (HLS) oder MPEG-DASH übertragen.
  • WatchDevice empfängt das Segment, dekodiert es und spielt es ab. Unter Dekodierung versteht man den Prozess der Dekodierung von Videodaten, und unter Wiedergabe versteht man den Prozess der Anzeige von Videodaten auf dem Bildschirm.