How does live stream encoding work? | Video encoding

Bei der Verschlüsselung von Livestreams wird ein Livevideo in kleinere Teile zerlegt, komprimiert und die Videodaten über ein CDN verteilt. Verbesserungen dieses Prozesses beschleunigen das Livestreaming.

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

Link zum Artikel kopieren

Was ist Live-Streaming?

Streaming ist eine Methode zur Bereitstellung von Daten über das Internet, ohne dass die Daten beim Endbenutzer vollständig heruntergeladen werden müssen. Live-Streaming ist eine Art von Streaming, bei dem der Stream in Echtzeit im Internet übertragen wird, ohne zuvor aufgezeichnet und gespeichert zu werden.

Beispiele für Livestreaming sind Streaming bei Videospielen, Social-Media-Streams wie Periscope und Facebook Live sowie professionelle Sportübertragungen über das Internet. Man kann sowohl Audio als auch Video live streamen, aber in diesem Artikel soll es um Live-Videostreaming gehen.

Was ist Videocodierung?

Bei der Videocodierung werden Videodaten komprimiert, damit sie effizient an einen anderen Ort gesendet werden können. Das Gerät, das einen Stream empfängt – beispielsweise ein Tablet, auf dem ein Benutzer seine Lieblingssendung sieht – decodiert die verschlüsselten Daten. Für die Videocodierung gibt es öffentlich bekannte Standards, damit eine Vielzahl von Geräten den verschlüsselten Stream interpretieren kann.

Für die Verschlüsselung von Videos gibt es hauptsächlich zwei Gründe:

  1. Für praktikables Streaming würde es viel zu lange dauern, unkomprimierte Videodateien über das Internet zu versenden.
  2. Videos müssen in einem Format vorliegen, das jedes Endgerät, ob Smartphone, Laptop, PC usw., interpretieren kann.

Bei einem Video-Livestream werden audiovisuelle Daten von einem Gerät aufgenommen, codiert und gleichzeitig an das Publikum versendet. Die Codierung im Rahmen dieses Vorgangs ist wichtig, damit viele verschiedene Endgeräte das Video empfangen und abspielen können.

Wie funktioniert die Codierung eines Livestreams?

Ein Livestream wird von einer Quelle, an der Videos aufzeichnet werden – z. B. einer Webcam – an einen Server gesendet, auf dem der Videofeed über ein Streaming-Protokoll wie HLS oder MPEG-DASH in kleinere Segmente aufgeteilt wird, die jeweils einige Sekunden lang sind.

The video content is then encoded using an encoding standard. The encoding standard in wide use today is called H.264, but standards like H.265, VP9, and AV1 are also in use. This encoding process compresses the video by removing redundant visual information. For example, in a stream of someone talking against the background of a blue sky, the blue sky does not need to be rendered again for every second of video, since it does not change a lot. Therefore, the blue sky can be stripped out from most frames of the video.

Die komprimierten und segmentierten Videodaten werden dann über ein Content Delivery Network (CDN) verbreitet. Ohne so ein CDN könnten nur sehr wenige Zuschauer den Livestream laden. Warum das so ist, erklären wir im letzten Abschnitt dieses Artikels.

Bei den meisten Mobilgeräten ist ein Encoder integriert. So kann auch der Normalbenutzer Livestreams auf Social-Media-Plattformen und über Messaging-Apps übertragen. Wenn für eine Marke oder ein Unternehmen ein Stream höherer Qualität benötigt wird, können eigene Codierungsprogramme, -hardware oder beides eingesetzt werden.

Wie können neue Technologien das Live-Streaming beschleunigen?

Bei vielen Livestreams müssen die Zuschauer immer noch mit 20 bis 30 Sekunden Latenz leben – mit anderen Worten, die Inhalte, die sie gerade sehen, hinken dem Original 20 bis 30 Sekunden hinterher. Zum Teil liegt das daran, dass jedes Videosegment vollständig geladen werden muss, bevor es abgespielt werden kann, und das Laden eines Videosegments kann einige Sekunden dauern.

Eine Lösung für diese Verzögerung ist ein Vorgang namens „Chunked Encoding“, also „stückweise Codierung“. Dabei werden die Videosegmente in noch kleinere Teile zerlegt. Diese kleineren Teile werden dann codiert, und die Geräte, die den Stream empfangen, können diese kleineren Teile schon abspielen, bevor das gesamte Segment geladen wurde.

Wie können CDNs das Live-Streaming noch weiter beschleunigen?

CDNs sind für Live-Streaming unerlässlich, denn nur mit ihnen kann ein Stream an Benutzer an sehr unterschiedlichen Orten verteilt werden. Außerdem haben CDNs viel mehr Bandbreite für die Verteilung eines Streams als ein einzelner Ursprungsserver. Ohne CDN kann es beim Livestream leicht Probleme bei der Bandbreite geben.

Bei den meisten CDNs muss jedoch immer noch ein vollständiges Videosegment geladen werden, bevor das Segment für mehrere Benutzer gleichzeitig bereitgestellt werden kann. Damit kehrt das Latenzproblem zurück, das durch abschnittsweise Codierung eigentlich gelöst werden sollte.

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 250 cities in more than 100 countries, enabling users around the world to tune into a high-quality, real-time live stream.