Mit RTMP wird rei­bungs­lo­ses Streaming von Audio- und Video-Inhalten er­mög­licht. Das Netz­werk­pro­to­koll ist es­sen­zi­ell für die Über­tra­gung von codierten Signalen in das Content Delivery Network, kurz CDN.

Free Cloud Server Trial
Virtual Private Server auf En­ter­pri­se-Level
  • KVM-basierte vServer für Ent­wick­ler
  • In­te­griert in die IONOS Compute Engine
  • Ska­lier­bar bis zur En­ter­pri­se-Cloud

Die Ge­schich­te des Real Time Messaging Protocol

Das RTMP wurde von Adobe Inc. ent­wi­ckelt. Es diente zunächst dazu, Daten zwischen Servern und dem Adobe Flash Player zu über­tra­gen. Dieser wurde in großem Stil genutzt, sodass auch das Real Time Messaging Protocol vielfach ein­ge­setzt wurde. Obwohl der Adobe Flash Player Ende 2020 ein­ge­stellt wurde, erfreut sich RTMP nach wie vor größter Be­liebt­heit und ist das Netz­werk­pro­to­koll, das primär für Streaming ein­ge­setzt wird. Um den Stream jedoch auf moderne Endgeräte zu über­tra­gen, die aufgrund der Nutzung von HTML5 RTMP oft nicht mehr un­ter­stüt­zen, wird häufig eine Kom­bi­na­ti­on aus RTMP und HLS ein­ge­setzt.

So funk­tio­niert das Real Time Messaging Protocol

Um Audio- oder Vi­deo­in­hal­ten per Streaming über das Internet be­reit­zu­stel­len, muss zunächst das Signal codiert werden. Hierfür werden so­ge­nann­te Streaming-Encoder ein­ge­setzt. Das codierte Signal wird an­schlie­ßend mittels RTMP auf einen RTMP-Server über­tra­gen. Das Protokoll hat außerdem die Aufgabe, die codierten Signale an ein Content Delivery Network oder an eine Online-Vi­deo­platt­form zu über­tra­gen. Wie diese Über­tra­gung genau von­stat­ten­geht, hängt von der ver­wen­de­ten RTMP-Variante ab.

Bei der Stan­dard­va­ri­an­te des Netz­werk­pro­to­kolls wird als Trans­port­pro­to­koll TCP über Port 1935 genutzt. Zunächst werden Da­ten­blö­cke zwischen Client und Server aus­ge­tauscht. Diesen Vorgang nennt man auch Handshake. Auf diese Weise wird dem Server mit­ge­teilt, welche Pro­to­koll­ver­si­on genutzt wird. Außerdem wird dem Server eine Zeitmarke gesendet. Sobald der Server mitteilt, dass und wann er diese beiden Da­ten­blö­cke erhalten hat, kann die Ver­bin­dung aufgebaut werden.

Hierfür schickt der Client eine Ver­bin­dungs­an­fra­ge (connect request) im Action-Message-Format an den Server und wartet im Anschluss auf eine Be­stä­ti­gung desselben. Wenn der Client diese erhalten hat, kann der Client mit dem Echtzeit-Streaming beginnen.

So wird eine per­sis­ten­te Ver­bin­dung aufgebaut, mit der die Daten in Echtzeit über­tra­gen werden können. Die Streaming-Daten werden dabei in ver­schie­den großen Blöcken über­tra­gen. Für Vi­deo­da­ten beträgt die Block­grö­ße 128 Byte, für Au­dio­da­ten 64 Byte. Die Latenz des RTMP ist aufgrund der Ver­wen­dung von TCP ver­hält­nis­mä­ßig gering.

Eine andere Variante des Real Time Messaging Protocol ist RTMPT auf Basis von HTTP. Hierbei wird eine Tunneling-Technik ein­ge­setzt, um Firewalls zu umgehen. Ähnlich funk­tio­niert auch RTMPS auf Basis von HTTPS.

Vom RTMP-Server aus kann der Stream mittels HLS auch direkt zu End­ge­rä­ten über­tra­gen werden.

Ein­satz­be­rei­che für RTMP

Im All­ge­mei­nen wird das Real Time Messaging Protocol in zwei Bereichen ein­ge­setzt. Der erste An­wen­dungs­fall für RTMP ist das Über­tra­gen von Daten zwischen einem Encoder und einem Server. Dieser Use-Case wird auch als „First Mile Delivery“ be­zeich­net.

Da der Flash Player nicht mehr existiert, kann RTMP nicht mehr ein­ge­setzt werden, um Daten direkt an die End­nut­zen­den zu schicken. Deshalb müssen im zweiten An­wen­dungs­fall ein Content Delivery Network oder eine Online-Vi­deo­platt­form ein­ge­setzt werden. Mittels RTMP werden die Daten des Servers dann an diese wei­ter­ge­lei­tet.

Tipp

Wenn Sie einen eigenen RTMP-Server erstellen möchten, müssen Sie sich zunächst für ein Server-Be­triebs­sys­tem ent­schei­den. Sie haben die Wahl zwischen Windows oder ver­schie­de­nen Linux-Server-Dis­tri­bu­tio­nen.

Zum Hauptmenü