Ein vollständiger Leitfaden zu RTMP: Was ist das und wann wird es verwendet?
Das Real-Time Messaging Protocol (RTMP) ist ein weit verbreitetes Streaming-Format. Es gibt es schon seit vielen Jahren und hat sich zu einem unverzichtbaren Werkzeug für Rundfunkanstalten, Netzbetreiber und viele andere Branchen entwickelt. Einige Missverständnisse über RTMP haben jedoch dazu geführt, dass es weniger populär ist, als es sein könnte.
Aber was genau ist RTMP? Wie funktioniert es? Und sollten Sie es für Ihren nächsten Live-Stream verwenden?
Dies und mehr erfahren Sie weiter unten.
Was ist RTMP?
RTMP ist ein Netzwerkprotokoll oder ein System zum Streamen von Medieninhalten über das Internet, das auf der TCP-Technologie (Transmission Control Protocol) basiert.
TCP ist eine der Komponenten, aus denen die Internet-Protokollsuite besteht. Die andere wichtige Komponente ist das Internetprotokoll, das auch als IP bezeichnet wird.
RTMP ist ein Netzwerkprotokoll oder ein System, das zum Streamen von Medieninhalten über das Internet verwendet wird.
Zusammen fungieren TCP und IP als Kommunikationsbrücken zwischen der Anwendungs- und der Netzwerkschicht. Stellen Sie sich das so vor: Die Anwendungsschicht umfasst das, womit Sie normalerweise interagieren, z. B. den Mozilla Firefox-Browser oder jede andere Benutzeranwendung.
Damit Ihr Firefox-Browser eine Webseite laden kann, muss er eine Anfrage an den Server der Website senden. Nach Erhalt der Anfrage sendet der Server die angeforderte Ressource (z. B. einen Videostream, ein vorab aufgezeichnetes Video auf YouTube oder Html-Code für die Webseite).
Um eine effektive Kommunikation aufrechtzuerhalten (d. h. um zu verhindern, dass die Korrespondenz unterbrochen oder verzögert wird), muss die Nachricht in kleinere Teile, so genannte Pakete, zerlegt werden. Dies geschieht auf der Seite des Absenders, und sobald die Nachricht empfangen wurde, wird sie für den Benutzer wieder zusammengesetzt.
TCP ist die Komponente, die sich mit der Aufteilung der Nachricht in Pakete oder kleinere Teile befasst, die effektiv und effizient übertragen werden können.
Die IP-Schicht fungiert als Weiterleitungsagent, der die besten Routen für die Übertragung der Pakete über das Internet bestimmt.
Das RTMP-Protokoll wird von vielen gängigen Media-Playern verwendet, darunter Adobe Flash Player, VLC Media Player, QuickTime Player und Windows Media Player. RTMP wird auch von einigen Webbrowsern unterstützt, darunter Google Chrome und Mozilla Firefox.
Das Hauptaugenmerk der meisten Nutzer einer Streaming-Lösung liegt auf der Art und Weise, wie die Inhalte übertragen werden. Wenn die Qualität der Streaming-Auflösung niedrig ist, ist das für die meisten Verbraucher ein Hindernis. Auch eine Streaming-Lösung mit hohen Latenzzeiten und Puffern oder zu langen Ladezeiten, bevor der Inhalt abgespielt wird, kommt nicht gut an.
Hier kommt RTMP ins Spiel. Seit seiner Entwicklung garantiert RTMP niedrige Latenzzeiten, minimale Pufferung und eine der besten Streaming-Auflösungen, sofern die Netzwerkverbindung stark und schnell genug ist.
Ein weiterer Pluspunkt für RTMP ist die Fähigkeit, Massenstreaming gleichzeitig und ohne größere Probleme zu unterstützen.
Obwohl es RTMP schon seit vielen Jahren gibt, ist es in letzter Zeit verstärkt in die Kritik geraten, weil das System für seine Nutzer unsicher ist.
So entsteht die Sicherheitslücke(n):
Erstens hat das RTMP-Protokoll keine Verschlüsselung eingebaut. Daher kann jede Kommunikation oder Paketübertragung, während RTMP verwendet wird, von nicht autorisierten Gruppen oder Man-in-the-Middle-Angriffen abgehört werden.
Ein weiterer Faktor, der zur Sicherheitsanfälligkeit von RTMP beigetragen hat, ist, dass der Quellcode lange Zeit proprietär war. Proprietäre Software (d. h. Software, deren Eigentums- und Kontrollrechte auf das Unternehmen beschränkt sind, das sie entwickelt oder gekauft hat) erhält in der Regel regelmäßig Sicherheits-Patches, aber das reicht nicht aus.
Neue Sicherheitslücken tauchen häufig auf, und die Gemeinschaft, die sich um Open-Source-Software gebildet hat, garantiert relativ häufige und bessere Sicherheits-Patches. Das ist es, was RTMP versäumt hat, um seine Sicherheitslage zu verbessern.
RTMP-Variationen
Zu den RTMP-Varianten gehören die folgenden:
- Real-Time Messaging Protocol Server (RTMPS) - ist ähnlich wie RTMP, nur dass es verschlüsselt ist, d. h. Secure Sockets Layer (SSL) und Transport Layer Security (TLS) aktiviert sind, und alle Player mit aktiviertem Flash Player unterstützt. Es wird in Szenarien verwendet, in denen es wichtig ist, die Manipulation oder den unbefugten Zugriff auf Daten während der Übertragung zu verhindern.
- Encrypted Real-Time Messaging Protocol (RTMPE) - ein sehr vielseitiges Streaming-Protokoll, das sowohl das Transport Control Protocol (TCP) als auch das User Datagram Protocol (UDP) zur Datenübertragung nutzt. RTMPE verschlüsselt außerdem alle Datenübertragungen mit der proprietären Verschlüsselung von Adobe, um unbefugten Zugriff und Manipulationen zu verhindern.
- Real-Time Messaging Protocol Tunnel (RTMPT) - RTMPT verwendet einen Tunneling-Mechanismus, um Firewallszu umgehen , die normalerweise den gesamten RTMP-Verkehr blockieren. In der Praxis erfordert RTMPT, dass der Client eine modifizierte HTTP-Anfrage an den Server sendet, der mit einer fast identischen HTTP-Übertragung antwortet. Der Client und der Server verwenden eine Sitzungskennung; sobald eine Verbindung hergestellt ist, kann die Datenübertragung zwischen den beiden beginnen.
- Real-Time Media Flow Protocol (RTMFP) - RTMFP ist eine Weiterentwicklung von RTMP, da es ein anderes Kodierungsformat (UDP) verwendet, um ein leistungsstarkes Media-Streaming zu erreichen.
Geschichte des RTMP-Streaming
Real-Time Messaging Protocol (RTMP) war ursprünglich ein proprietäres Protokoll, das von Macromedia für das Streaming von Audio, Video und Daten über das Internet zwischen einem Flash-Player und einem Server entwickelt wurde.
RTMP wird inzwischen von zahlreichen beliebten Online-Diensten wie Facebook, Twitch und Twitter für das Live-Video-Streaming verwendet.
Die erste öffentliche Version von RTMP wurde 2002 veröffentlicht. Im Jahr 2009 veröffentlichte Adobe eine offen spezifizierte Version von RTMP, die als OpenRTMP bekannt ist. Der Hauptunterschied zwischen RTMP und OpenRTMP besteht darin, dass mit OpenRTMP jeder beliebige Medienserver und nicht nur Flash Media Server (FMS) verwendet werden kann.
Außerdem bietet die offene RTMP-Spezifikation mehr Flexibilität, was die Art und Weise betrifft, wie Entwickler Peer-to-Peer-Funktionen sichern oder konfigurieren können. Dies soll Innovation und Zusammenarbeit durch Wettbewerb und offenen Zugang unter Entwicklern fördern, um die ideale RTMP-Lösung zu entwickeln.
Das Hauptprinzip
RTMP verwendet eine Technik namens "Streaming" zur Bereitstellung von Inhalten. Das bedeutet, dass die Daten in kleinen Stücken, so genannten "Chunks", übertragen werden. Die Chunks werden am anderen Ende wieder zusammengesetzt, so dass der Nutzer die Inhalte ansehen oder anhören kann, ohne darauf zu warten, sie vollständig herunterzuladen.
Die Funktionsweise von RTMP besteht aus zwei Teilen: Die Zustellung auf der ersten und der letzten Meile.
Bei der First-Mile-Delivery werden die Medien im Allgemeinen über RTMP vom Encoder zum Server übertragen. Die Last-Mile-Lieferung bezieht sich auf die Übertragung der Medien vom Server zum Gerät des Benutzers. Für diesen zweiten Teil wird ein Flash-Player oder ein ähnlich leistungsfähiges Tool verwendet. Es gibt Berichte, dass Adobe die Unterstützung für Flash einstellt, was das Ende der Last-Mile-Delivery bedeutet.
Als Reaktion darauf hat die Branche das Hypertext Transfer Protocol (HTTP) eingeführt, eine effizientere Streaming-Lösung.
RTMP-Varianten wie RTMPT verwenden derzeit HTTP, um Medien zu kapseln und zu übertragen.
So funktioniert RTMP-Ingest
Dies ist wahrscheinlich einer der Pluspunkte von RTMP, der es so lange am Leben erhalten hat. Als sichdie Welt von der Betrachtung von Medien auf Computern weg und hin zur mobilen Betrachtung bewegte, stand RTMP vor einer Herausforderung.
Zum einen war RTMP auf den Adobe Flash Player angewiesen, um ein nahtloses Streaming-Erlebnis zu ermöglichen, aber es gab ein kleines Problem. Mobile Geräte unterstützten den Adobe Flash Player nicht, so dass RTMP für Nutzer, die die gleichen Streaming-Dienste auf ihren mobilen Geräten nutzen wollten, im Grunde nutzlos wurde.
Als Antwort darauf entwickelte Apple das HLS-Protokoll, um die Streaming-Funktion auf mobilen Geräten zu unterstützen.
Es war zu erwarten, dass RTMP veraltet sein würde. Glücklicherweise hat sich RTMP mit dem RTMP-Ingest weiterentwickelt und seine Nische als ideales Protokoll für den Transport von Medien vom Encoder zum Server geschaffen.
RTMP-Ingest bevorzugt kostengünstige Encoder und bietet den Nutzern im Allgemeinen Streaming mit geringer Latenz.
Sie umfasst drei Hauptkomponenten:
1. Der Händedruck
Wenn ein Client eine Verbindung zu einem RTMP-Server herstellen will, muss er zunächst ein Handshake aufbauen. Dieser Prozess beginnt damit, dass der Client eine "Connect"-Anfrage an den Server sendet, die Informationen über den Client und die Art der Verbindung enthält, die er herzustellen versucht.
Der Server antwortet dann mit einer "connected"-Nachricht, die Informationen über den Server und die Art der hergestellten Verbindung enthält.
Schließlich tauschen der Client und der Server Nachrichten aus, um zu bestätigen, dass beide noch verbunden sind, und um alle für die Verbindung erforderlichen Parameter auszuhandeln.
2. Die Verbindung
Der Hauptzweck der RTMP-Ingest-Verbindung besteht darin, ein Mittel zum Streaming von Medieninhalten von einer Quelle zu einem Ziel bereitzustellen.
Bei der Medienquelle kann es sich um eine Live-Kameraübertragung, vorab aufgezeichnetes Video, Audio oder andere Medien handeln. Das Ziel ist in der Regel ein Streaming-Media-Server, der die Inhalte an die Zuschauer verteilt.
Eine RTMP-Ingest-Verbindung besteht aus drei Komponenten:
- Der Encoder wandelt das Video- und Audiosignal in ein digitales Format um, das über das Internet übertragen werden kann.
- Der Transport: Dies ist das Medium, über das das verschlüsselte Signal vom Encoder zum Server gesendet wird; normalerweise geschieht dies über UDP oder TCP.
- Der Server empfängt das kodierte Signal und stellt es den Zuschauern zur Verfügung (in der Regel durch Verpackung in ein Format wie Flash).
3. Das Streaming
Wenn ein Benutzer Inhalte an einen Medienserver streamt, muss der Server zunächst die eingehenden Video- und Audiodaten kodieren, bevor er sie an alle angeschlossenen Clients weiterleitet.
Der Prozess der Kodierung und Neuformatierung von Video und Audio in ein Standarddateiformat wird als Transkodierung bezeichnet. Dabei wird das Eingangssignal in eine Form umgewandelt, die auf verschiedenen Geräten abgespielt werden kann.
Es gibt zwei Arten von Streaming: Live- und On-Demand-Streaming. Live-Streaming bezieht sich auf die Übertragung in Echtzeit, während On-Demand-Streaming bedeutet, dass die Nutzer Inhalte bequem ansehen können.
Für das Live-Streaming ist eine ständige Verbindung zwischen Client und Server erforderlich, für das On-Demand-Streaming hingegen nicht.
RTMP verwendet TCP, um eine dauerhafte Verbindung zwischen Client und Server aufrechtzuerhalten, was Streaming mit geringer Latenz ermöglicht. RTMP eignet sich jedoch nicht gut für On-Demand-Streaming.
RTMP-Alternativen für den Ingest
SRT und WebRTC sind die wichtigsten Konkurrenten, die mit den RTMP-Funktionen mithalten oder diese sogar übertreffen können. Hier ist eine kurze Vorschau auf die beiden Alternativen:
Sicherer zuverlässiger Transport (SRT)
SRT füllt die Lücken, die RTMP nicht schließen konnte, z. B. die Aufrechterhaltung von Streaming mit geringer Latenz, selbst wenn der Benutzer mit einem relativ unzuverlässigen Netzwerk verbunden ist. Dies macht es zu einer hervorragenden Wahl für Live- und On-Demand-Streaming.
Da es sich um eine Open-Source-Lösung handelt, sind die Möglichkeiten unbegrenzt, und man muss sich keine Sorgen machen, dass die Entwicklungsunterstützung eingestellt wird.
Web-Echtzeitkommunikation (WebRTC)
WebRTC gewinnt mit seiner browserbasierten Veröffentlichung. Das WebRTC HTTP Ingest Protocol (WHIP) ist ebenfalls in Arbeit. Für die Nutzer bedeutet dies, dass sie nur mit einem Webbrowser streamen können, anstatt sich wie bei RTMP mit Encodern herumzuschlagen.
RTMP-Alternativen für den Ausstieg
Ganz oben auf der Liste der RTMP-Egress-Alternativen stehen HTTP Live Streaming (HLS), MPEG-DASH und WebRTC.
Hier ist eine kurze Vorschau auf die Alternativen:
HLS und MPEG-DASH
Diese beiden sind praktisch identisch, nur dass HLS proprietär ist, während MPEG-DASH Open-Source ist.
Das Beste an diesen beiden Geräten ist, dass sie für niedrige Latenzzeiten und optimale Medienqualität ausgelegt sind und sogar mit unzuverlässigen Netzwerkverbindungen funktionieren.
WebRTC ist auch eine bemerkenswerte Alternative zu RTMP-Egress-Lösungen.
Sind RTMP und Flash am Ende?
Die kurze Antwort lautet: wahrscheinlich nicht. Die lange Antwort ist ein bisschen komplizierter.
Die stetig wachsende Beliebtheit von HTML5 und die Verbreitung von leistungsfähigen Flash-Alternativen könnte den Eindruck erwecken, dass RTMP und Flash im Sterben liegen. Aber das ist nicht der Fall.
Flash ist seit einiger Zeit auf dem Rückzug und hat in den letzten Jahren einen erheblichen Marktanteil an HTML5 verloren.
Nichtsdestotrotz ist es immer noch sehr präsent im Internet und wird von vielen beliebten Websites wie YouTube und Facebook verwendet.
RTMP wird nach wie vor häufig für das Streaming von Audio- und Videoinhalten verwendet. Seine Zukunft ist jedoch weniger sicher als die von Flash.
Adobe hat angekündigt, die Unterstützung von RTMP im Jahr 2020 einzustellen, was das Ende dieses Protokolls bedeuten könnte. Dennoch gibt es zahlreiche Alternativen, die auf RTMP basieren, so dass es wahrscheinlich in der einen oder anderen Form auch in den kommenden Jahren weiter verwendet werden wird.
Sollten Sie also mit RTMP streamen?
Es kommt darauf an. Schauen Sie sich einige Vor- und Nachteile der Verwendung von RTMP an.
Profis
- Er ist sehr stabil. Im Vergleich zu anderen Alternativen auf dem Markt ist es sehr unwahrscheinlich, dass es bei der Nutzung eines RTMP-fähigen Dienstes zu Unterbrechungen oder Ausfallzeiten kommt.
- Geringe Latenz und minimale Pufferung. RTMP ist in dieser Hinsicht einzigartig, d. h. die Nutzer können Videos in besserer Auflösung ansehen, und das Laden der Medien dauert deutlich kürzer.
- Kompatibilität. Die robuste und zuverlässige Natur von RTMPS ermutigte mehr Hersteller, ihre Produkte so zu gestalten, dass sie sich problemlos in RTMP integrieren lassen
Nachteile
- RTMP erfordert eine ständige Verbindung zwischen dem Client und dem Server, was bei Netzstörungen problematisch sein kann
- Da es sich um eine proprietäre Software handelt, gibt es wenig Flexibilität für Power-User.
FAQS
Wie verwende ich Wave.video für das Streaming über RTMP?
Wenn Sie Videos über RTMP streamen möchten, ist Wave.video eine gute Option. Hier erfahren Sie , wie Sie es verwenden:
- Erstellen Sie ein Konto bei Wave.video und melden Sie sich an, falls Sie dies noch nicht getan haben.
- Wählen Sie das Video, das Sie streamen möchten.
- Navigieren Sie zur Seite "Ziele" auf Wave.video und klicken Sie auf "Custom RTMP".
- Als Nächstes müssen Sie die Server-URL und den Stream-Schlüssel für den Inhalt finden, den Sie streamen möchten. Navigieren Sie dazu zu der Website mit dem Stream, den Sie ansehen möchten.
- Sie können eine Drittanbieter-App oder -Erweiterung verwenden, um die URL und den Schlüssel zu extrahieren, wenn Sie nicht wissen, wie Sie vorgehen sollen.
- Kopieren Sie die Server-URL und den Stream-Schlüssel.
- Fügen Sie die Server-URL und den Stream-Schlüssel in Wave.video ein.
- Erstellen oder planen Sie Ihren Stream.
- Öffnen Sie das Live-Studio und beginnen Sie mit dem Streaming.
Das ist alles, was es zu tun gibt, schnell und einfach!
Welche Encoder unterstützen RTMP?
Es gibt viele Encoder-Hardware und -Software, die RTMP unterstützen. Einige von ihnen sind:
- Adobe Media Encoder
- OBS-Studio
- Elementarer Server
- TriCaster
- Wirecast
- vMix
- TeraDek
- Wowza Streaming Engine
- Niagara-Video
RTMP vs. RTSP - was ist besser?
RTMP und RTSP sind Protokolle für das Streaming von Audio, Video und Daten über das Internet. Sie sind in vielerlei Hinsicht ähnlich, aber einige wichtige Unterschiede machen sie ideal für verschiedene Situationen oder Vorlieben.
Im Folgenden finden Sie eine kurze Zusammenfassung der wichtigsten Unterschiede zwischen den beiden:
- RTMP eignet sich besser für Live-Streaming, während RTSP besser für On-Demand-Streaming geeignet ist.
- RTMP hat eine geringere Latenzzeit, während RTSP eine höhere Videoqualität bieten kann.
- Für RTMP ist ein Flash Media Server erforderlich, während RTSP mit jedem Medienserver funktionieren kann.
Welches Protokoll ist also besser? Das kommt ganz auf Ihre spezifischen Bedürfnisse an.
RTMP ist eine gute Wahl, wenn Sie eine niedrige Latenzzeit benötigen und Flash verwenden können. RTSP könnte ideal sein, wenn Sie ein qualitativ hochwertiges Video benötigen oder einen Medienserver ohne Flash verwenden möchten.
Was ist das Action Message Format (AMF)?
AMF ist ein binäres Format für die Kodierung und Übertragung von Daten über das Internet, das häufig in Verbindung mit RTMP verwendet wird.
AMF ermöglicht die Übertragung von Daten, die mit RTMP nicht kompatibel sind, wie z. B. ActionScript-Objekte. Außerdem ermöglicht es den effizienten Austausch von Daten zwischen Flash-Anwendungen und Servern.
Was ist eine RTMP-URL und wie erhält man sie von Facebook oder YouTube?
Eine RTMP-URL ist eine eindeutige Kennung, die zum Streamen von Live-Videoinhalten auf verschiedene Plattformen verwendet wird.
Sie enthält in der Regel eine IP-Adresse, einen Domänennamen und eine Portnummer.
Sie müssen ein Live-Streaming-Ereignis auf einer der beiden Plattformen erstellen, um es von YouTube oder Facebook zu erhalten. Sobald Sie dies getan haben, können Sie die RTMP-URL in den Einstellungen des Ereignisses finden.
Abschließende Überlegungen
RTMP hat sich in der Welt zweifellos einen Namen gemacht. Ist es auf dem Weg zum Aussterben? Als Egress-Lösung vielleicht, als Ingest überhaupt nicht!
Selbst wenn andere gleichwertige oder leistungsfähigere Alternativen aufkommen, wird RTMP für die Medienübertragung und das Streaming relevant bleiben.