Was ist Live-Streaming? | Wie funktioniert Live-Streaming

Beim Live-Streaming werden Video- oder Audiodaten an ein Publikum über das Internet übermittelt, während die Daten gerade erstellt werden.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Warum Videodateien codiert werden
  • Wie Live-Stream-Codierung funktioniert
  • Wie Verbesserungen des Live-Stream-Codierungsprozesses die Latenz verringern können

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Was ist Live-Streaming?

Streaming ist die Methode der Datenübertragung, die verwendet wird, wenn jemand Videos im Internet ansieht. Auf diese Weise können Sie eine Videodatei nacheinander bereitstellen, häufig von einem Remotespeicherort. Wenn Sie nur jeweils einige Sekunden der Datei über das Internet übertragen, müssen Clientgeräte nicht das gesamte Video herunterladen, bevor Sie mit der Wiedergabe beginnen.

Beim Live-Streaming wird das gestreamte Video in Echtzeit über das Internet gesendet, ohne zuvor aufgezeichnet und gespeichert zu werden. Heute können TV-Sendungen, Videospiel-Streams und Social-Media-Videos live gestreamt werden.

Stellen Sie sich den Unterschied zwischen regulärem Streaming und Live-Streaming wie den Unterschied zwischen einem Schauspieler vor, der einen auswendig gelernten Monolog rezitiert und einem, der eine Rede improvisiert. Im ersten Fall wird der Inhalt zuvor erstellt, gespeichert und dann an das Publikum weitergeleitet. In letzterem Fall erhält das Publikum den Inhalt im selben Moment, in dem der Schauspieler ihn erstellt – genau wie beim Live-Streaming.

Der Begriff Live-Streaming bezieht sich normalerweise auf die Übertragung von Live-Streams: One-to-many-Verbindungen, die an mehrere Benutzer gleichzeitig gesendet werden. Videokonferenztechnologien wie Skype, FaceTime und Google Hangouts Meet arbeiten mit Echtzeit-Kommunikationsprotokollen (RTC) und nicht mit Protokollen, die von One-to-many-Live-Stream-Übertragungen verwendet werden.

Wie funktioniert Live-Streaming auf technischer Ebene?

Im Folgenden sind Hauptschritte aufgezählt, die in einem Live-Stream hinter den Kulissen stattfinden:

Videoaufnahme

Live-Streaming beginnt mit rohen Videodaten: den visuellen Informationen, die von einer Kamera erfasst werden. Innerhalb des Computergeräts, an das die Kamera angeschlossen ist, werden diese visuellen Informationen als digitale Daten dargestellt – mit anderen Worten, Einsen und Nullen auf der tiefsten Ebene.

Komprimierung und Codierung

Als nächstes werden die segmentierten Videodaten komprimiert und codiert. Die Daten werden durch Entfernen redundanter visueller Informationen komprimiert. Wenn im ersten Frame des Videos beispielsweise eine Person angezeigt wird, die vor einem grauen Hintergrund spricht, muss der graue Hintergrund für nachfolgende Frames mit demselben Hintergrund nicht gerendert werden.

Stellen Sie sich Videokomprimierung so vor, als würden Sie ein neues Möbelstück ins Wohnzimmer stellen. Sie müssen nicht jedes Mal, wenn sie einen neuen Stuhl oder Beistelltisch hinzufügen, völlig neue Möbel kaufen. Stattdessen können Sie die Raumaufteilung ungefähr gleich halten und jeweils nur ein Möbelstück austauschen, wobei gelegentlich größere Umstellungen erforderlich sind. Ebenso muss nicht jedes Bild eines Videostreams insgesamt gerendert werden – nur die Teile, die sich von Bild zu Bild ändern, z. B. die Mundbewegungen einer Person.

„Codierung“ bezieht sich auf den Prozess der Konvertierung von Daten in ein neues Format. Live-Streaming-Videodaten werden in ein interpretierbares digitales Format codiert, das von einer Vielzahl von Geräten erkannt wird. Zu den gängigen Videokodierungsstandards gehören:

Segmentierung

Videos enthalten viele digitale Informationen, weshalb das Herunterladen einer Videodatei länger dauert als das Herunterladen einer kurzen PDF-Datei oder eines Bildes. Da es nicht praktikabel wäre, alle Videodaten gleichzeitig über das Internet zu senden, wird das Streaming von Videos in kleinere Segmente mit einer Länge von einigen Sekunden unterteilt.

CDN-Verteilung und Caching

Sobald der Live-Stream segmentiert, komprimiert und codiert wurde (das alles dauert nur wenige Sekunden), muss er Dutzenden oder Millionen von Zuschauern zur Verfügung gestellt werden. Um eine hohe Qualität bei minimaler Latenz aufrechtzuerhalten und gleichzeitig den Stream mehreren Zuschauern an verschiedenen Standorten bereitzustellen, sollte er durch ein CDN verteilt werden.

Ein CDN ist ein verteiltes Netzwerk von Servern, die Inhalte für einen Ursprungsserver im Cache zwischenspeichern und bereitstellen. Die Verwendung eines CDN führt zu einer besseren Performance, da Benutzeranfragen nicht mehr bis zum Ursprungsserver gesendet werden müssen, sondern von einem nahe gelegenen CDN-Server verarbeitet werden können. Wenn auf diese Weise Anfragen bearbeitet und Inhalte bereitgestellt werden, wird auch die Arbeitslast des Ursprungsservers verringert. Schließlich ermöglichen CDNs die effiziente Bereitstellung von Inhalten für Benutzer auf der ganzen Welt, da sich ihre Server auf der ganzen Welt befinden und nicht in einem einzigen geografischen Gebiet gebündelt sind.

Ein CDN speichert auch jedes Segment des Live-Streams vorübergehend, sodass die meisten Zuschauer den Live-Stream aus dem CDN-Cache und nicht vom Ursprungsserver abrufen. Dies bringt den Live-Stream tatsächlich näher an die Echtzeit heran, obwohl die zwischengespeicherten Daten einige Sekunden zurückliegen, da die Roundtrip-Zeit (RTT) zum und vom Ursprungsserver verkürzt wird.

Dekodierung und Videowiedergabe

Das CDN sendet den Live-Stream an alle Benutzer, die den Stream ansehen. Das Gerät jedes Benutzers empfängt, decodiert und dekomprimiert die segmentierten Videodaten. Schließlich interpretiert ein Mediaplayer auf dem Gerät des Benutzers – entweder eine spezielle App oder ein Videoplayer im Browser – die Daten als visuelle Informationen, und das Video wird abgespielt.

Ein Beispiel

Angenommen, Alice startet einen Live-Stream auf ihrem Smartphone und Bob, der am anderen Ende des Landes lebt, schaltet zusammen mit ein paar Dutzend weiteren Freunden von Alice den Live-Stream auf seinem Smartphone ein. Alice startet den Live-Stream, indem sie die Smartphone-Kamera auf sich selbst richtet und sagt: „Hallo, Welt!“ Was muss passieren, damit dieser „Hallo, Welt“-Videoabschnitt Bob und alle anderen Leuten, die sich den Stream anschauen am anderen Ende des Landes erreicht?

Zuerst codiert und komprimiert Alices Smartphone dieses kleine Videosegment. Wenn Alice den Live-Stream in ihrer Küche filmt, wird ihre Küchenwand als erster Frame des Videos aufgezeichnet, nachfolgende Frames lassen es weg, da sich der Hintergrund nicht verändert.

Jetzt sendet die App, die Alice verwendet, die codierte, komprimierte Version ihrer Begrüßung „Hallo, Welt“ an das CDN der App. Bob hat Glück, weil einer der CDN-Server nur wenige Kilometer von seinem Zuhause entfernt ist, sodass die Anfrage seines Smartphones nach dem ersten Segment des Live-Streams fast sofort beantwortet wird. Bei anderen Live-Stream-Zuschauern kann es je nach geografischem Standort zu mehr oder weniger Latenz als bei Bob kommen.

Bobs Telefon dekodiert das Videosegment und rekonstruiert die komprimierten Daten, sodass Alices Küchenwand in jedem Bild angezeigt wird. Und schließlich, nur wenige Sekunden nachdem Alice „Hallo, Welt“ in ihrer Küche am anderen Ende des Landes gesagt hat, erscheint ihr Gesicht auf Bobs Smartphone und Bob sieht und hört ihre Begrüßung.

Warum ist ein CDN für das Live-Streaming wichtig?

Bandbreite: Jeder Punkt in einem Netzwerk kann nur eine begrenzte Anzahl an Daten gleichzeitig durchlaufen lassen. Diesen Maßstab nennt man „Bandbreite“. Wenn ein Datenstrom einen Punkt im Netzwerk erreicht, an dem die Datenmenge die Kapazität überschreitet, nennt man dies einen „Choke-Punkt“, da die Datenübertragung gedrosselt und verlangsamt wird. Ein Choke-Punkt ähnelt der Art und Weise, wie sich der Verkehr verlangsamt, wenn zu viele Autos versuchen, über eine einspurige Straße zu fahren.

Wenn alle Zuschauer eines Streams die Stream-Daten von seinem Ursprungspunkt abrufen, werden der Ursprungsserver und seine umgebende Netzwerkinfrastruktur zu einem Choke-Punkt und der Stream wird langsamer. Wenn jedoch die Hauptlast der Stream Delivery auf ein CDN verlagert wird, wird der Choke-Punkt eliminiert.

Globale Bereitstellung von Inhalten: Da CDNs auf der ganzen Welt verteilt sind, können sie Inhalte für ein globales Publikum bereitstellen. Ein Ursprungsserver in New York kann einem Publikum in Mailand keine Inhalte effektiv bereitstellen – insbesondere keine umfangreichen Inhalte wie Videos. Ein CDN hingegen kann Inhalte von jedem Punkt seines Netzwerks weiterleiten und bereitstellen, sodass eine Person in Mailand, die einen Live-Stream aus New York sieht, den Stream von einem Server in Mailand abrufen kann, anstatt darauf zu warten, dass er vollständig aus New York geladen wird.

Latenz- und RTT-Reduzierung: Die globale Bereitstellung von Inhalten mit einem CDN reduziert die Latenz für Live-Stream-Zuschauer, indem die RTT (Round-Trip Time) verkürzt wird. Die Anfrage-Antwort-Round-Trip ist sowohl in Bezug auf die Entfernung als auch in Bezug auf die Zeit kürzer, da die Anfrage eines Zuschauers nach einem Live-Stream nicht mehr zur ursprünglichen Quelle des Streams verschickt und die Streaming-Daten nicht mehr von dort übertragen werden müssen. Dies reduziert Verzögerungen und sorgt dafür, das der Live-Stream näher an Echtzeit kommt.

Workload: Das Beantworten von Benutzeranfragen nach Daten kostet einen Server Rechenleistung. Das Beantworten vieler Benutzeranfragen nach Videodaten kann einen einzelnen Server überfordern. Ein CDN verwendet Dutzende oder Hunderte von Servern, die einen Großteil der Arbeitslast vom Ursprungsserver übernehmen und ihn am Laufen halten können.

Caching: Ein CDN speichert jedes Videosegment eines Live-Streams zwischen (Caching). Das CDN kann dann die Segmente aus dem Cache bereitstellen, anstatt die Daten vom Ursprungsserver abzurufen.

Einen Live-Streams aus einem Cache bereitzustellen, scheint ein Widerspruch zu sein: Wenn der Stream live ist, wie kann das Speichern und Bereitstellen des Streams einige Sekunden später schneller sein? Zwar bleibt ein zwischengespeicherter Live-Stream hinter der Echtzeit zurück, dies ist jedoch immer noch schneller als der Weg zum Ursprungsserver. Die Hin- und Rückfahrt würde so lange dauern, dass der Stream noch weiter zurückfallen würde. Beim CDN-Caching tritt für Benutzer nur eine minimale Verzögerungszeit auf.

Wie beschleunigt Cloudflare Live-Streaming?

Das Cloudflare CDN verwendet eine Technik, die Concurrent Streaming Acceleration genannt wird und die Live Stream Delivery beschleunigt. Einige Streams können ein Videosegment nicht für mehr als einen Benutzer bereitstellen, bis das Segment vollständig im Cache gespeichert ist. Das Cloudflare CDN kann diese Segmente jedoch beim Laden direkt an mehrere Zuschauer gleichzeitig senden, wodurch wertvolle Sekunden Wartezeit für die Benutzer gespart werden. Hier finden Sie Informationen zum Thema Concurrent Streaming Acceleration.