Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03184.jsonl.gz/355

Um Audio- oder Videoinhalten per Streaming über das Internet bereitzustellen, muss zunächst das Signal codiert werden. Hierfür werden sogenannte Streaming-Encoder eingesetzt. Das codierte Signal wird anschließend mittels RTMP auf einen RTMP-Server übertragen. Das Protokoll hat außerdem die Aufgabe, die codierten Signale an ein Content Delivery Network oder an eine Online-Videoplattform zu übertragen. Wie diese Übertragung genau vonstattengeht, hängt von der verwendeten RTMP-Variante ab.
Bei der Standardvariante des Netzwerkprotokolls wird als Transportprotokoll TCP über Port 1935 genutzt. Zunächst werden Datenblöcke zwischen Client und Server ausgetauscht. Diesen Vorgang nennt man auch Handshake. Auf diese Weise wird dem Server mitgeteilt, welche Protokollversion genutzt wird. Außerdem wird dem Server eine Zeitmarke gesendet. Sobald der Server mitteilt, dass und wann er diese beiden Datenblöcke erhalten hat, kann die Verbindung aufgebaut werden.
Hierfür schickt der Client eine Verbindungsanfrage (connect request) im Action-Message-Format an den Server und wartet im Anschluss auf eine Bestätigung desselben. Wenn der Client diese erhalten hat, kann der Client mit dem Echtzeit-Streaming beginnen.
So wird eine persistente Verbindung aufgebaut, mit der die Daten in Echtzeit übertragen werden können. Die Streaming-Daten werden dabei in verschieden großen Blöcken übertragen. Für Videodaten beträgt die Blockgröße 128 Byte, für Audiodaten 64 Byte. Die Latenz des RTMP ist aufgrund der Verwendung von TCP verhältnismäßig gering.
Eine andere Variante des Real Time Messaging Protocol ist RTMPT auf Basis von HTTP. Hierbei wird eine Tunneling-Technik eingesetzt, um Firewalls zu umgehen. Ähnlich funktioniert auch RTMPS auf Basis von HTTPS.
Vom RTMP-Server aus kann der Stream mittels HLS auch direkt zu Endgeräten übertragen werden.