Ein RTMP-Server ist ein Server, der Audio- und Vi­deo­da­ten in Echtzeit über das Internet überträgt, vor allem für Live-Streams. Er nimmt den Stream entgegen und leitet ihn an Streaming-Platt­for­men oder Zu­schaue­rin­nen und Zuschauer weiter. Eigene Streaming-Server bieten gegenüber On­line­an­bie­tern eine Reihe von Vorteilen.

Free VPS Trial
vServer kostenlos testen für 30 Tage

Lassen Sie sich von den Vorteilen über­zeu­gen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!

Was ist ein RTMP-Server?

Strea­ming­diens­te sind mitt­ler­wei­le weit ver­brei­tet. Ins­be­son­de­re die Strea­ming­platt­form Twitch gehört für viele Ga­me­rin­nen und Gamer zum Alltag. Doch auch Streams aus diversen anderen Le­bens­be­rei­chen (Musik, Kunst, Food u. a.) werden immer populärer.

Mit einem RTMP-Server benötigen Sie Platt­for­men wie Twitch nicht, sondern können Ihren eigenen Streaming-Server aufsetzen. Hierzu wird das so­ge­nann­te Real Time Messaging Protocol (RTMP) genutzt. Mit diesem von Adobe Inc. ent­wi­ckel­ten Netz­werk­pro­to­koll werden Inhalte wie Video- oder Au­dio­con­tent zu einem Streaming-Server geschickt, mit dem die Medien dann in Echtzeit ab­ge­spielt werden können.

Obwohl Adobe die Un­ter­stüt­zung des Flash-Players seit Ende 2020 ein­ge­stellt hat, erfreut sich das RTMP-Protokoll nach wie vor großer Be­liebt­heit. Auch wenn man den Stream nicht mehr direkt in einem Browser anzeigen lässt, können Streams über das RTMP-Protokoll von Vi­deo­an­wen­dun­gen wie dem VLC Player oder Al­ter­na­ti­ven empfangen werden. In modernen Streaming-Setups wird RTMP meist nicht zur direkten Aus­lie­fe­rung an Zu­schaue­rin­nen und Zuschauer genutzt. Statt­des­sen dient es als Ingest-Protokoll, über das der Stream von einem Encoder (z. B. OBS) an den Server gesendet wird. Die ei­gent­li­che Aus­lie­fe­rung an Endgeräte erfolgt an­schlie­ßend über Pro­to­kol­le wie HLS (HTTP Live Streaming), DASH oder WebRTC, die von allen gängigen Browsern und End­ge­rä­ten un­ter­stützt werden.

Welche Vorteile bietet ein RTMP-Server?

Ein eigener Streaming-Server er­mög­licht es Ihnen, Inhalte Ihrer Wahl ganz ohne Be­schrän­kun­gen zu streamen. Auch Werbung, die teilweise in Streams auf gängigen Platt­for­men ein­ge­bet­tet wird, taucht bei einem RTMP-Server, der nur Ihnen gehört, nicht auf. Daher ist es nicht ver­wun­der­lich, dass Live­stream-Server in der Gaming­sze­ne weit ver­brei­tet sind.

Doch auch in anderen Bereichen kann es lohnend sein, einen eigenen Streaming-Server ein­zu­rich­ten. So können Sie Live­streams oder Vi­deo­in­hal­te, die auf Ihrer Website prä­sen­tiert werden sollen, direkt von Ihrem Server aus be­reit­stel­len, ohne einen Umweg über externe Platt­for­men von Dritt­an­bie­tern wie z. B. YouTube gehen zu müssen. Das ist bei­spiels­wei­se für Webinare eine in­ter­es­san­te Option.

Vor­aus­set­zun­gen für die Ein­rich­tung eines RTMP-Servers

Bevor Sie mit der Ein­rich­tung Ihres eigenen Streaming-Servers beginnen können, benötigen Sie einige Dinge. Zunächst müssen Sie sich für eine passende Server-Lösung ent­schei­den. Da Sie in der Regel einen stö­rungs­frei­en Stream für viele Menschen ga­ran­tie­ren möchten, sollten Sie sich dabei nicht auf die Leistung Ihres PCs oder Laptops, den Sie unter Umständen gleich­zei­tig zum Spielen verwenden möchten, verlassen. Besonders die Band­brei­te der In­ter­net­ver­bin­dung spielt bei der Wahl eine große Rolle.

Pro­zes­sor­leis­tung (CPU)

Prin­zi­pi­ell ist ein RTMP-Server nicht besonders re­chen­in­ten­siv. Ein einzelner CPU-Kern kann für kleine Projekte ohne Trans­ko­die­rung schon genügen. Besonders wenn der Server auch für das Trans­ko­die­ren ein­ge­setzt wird, kann die An­for­de­rung aber stark steigen.

Ar­beits­spei­cher (RAM)

Auch unter dem Aspekt des Ar­beits­spei­chers stellt ein RTMP-Server kaum große An­for­de­run­gen. Schon 4 GB können für kleinere Projekte genug sein. Wenn Sie um­fang­rei­che­re Pläne haben, sollten Sie lieber zu 8 GB greifen.

Fest­plat­ten­spei­cher

Die In­stal­la­ti­ons­da­tei­en der be­nö­tig­ten NGINX-Software sind nicht besonders groß. Auf den Fest­plat­ten­spei­cher müssen Sie deshalb nur dann achten, wenn Sie die Streams auf dem Server speichern wollen. Hierbei spielen dann die Länge des Streams sowie dessen Qualität eine Rolle.

Band­brei­te

Besonders große Auf­merk­sam­keit sollten Sie der Band­brei­te widmen. Bedenken Sie hierbei die Größe des Streams – diese hängt vor allem mit der Bild- und Ton­qua­li­tät zusammen. Diese mul­ti­pli­ziert sich zum einen mit der Menge der Zu­schaue­rin­nen und Zuschauer, aber auch mit der Menge an Streams. Wenn Sie über einen Server mehrere Streams verteilen wollen, muss die Band­brei­te ent­spre­chend höher sein.

RTMP-Server bei IONOS hosten

Bei IONOS finden Sie drei ver­schie­de­ne Optionen für Server-Lösungen:

  • Dedicated Server: Die Hardware wird aus­schließ­lich für Ihren Server ein­ge­setzt, bei mi­nu­ten­ge­nau­er Ab­rech­nung.
  • vServer: Bei einem Virtual Private Server (VPS) wird die Ser­ver­um­ge­bung auf de­di­zier­ter Hardware vir­tua­li­siert.
  • Cloud Server: Ein Cloud Server er­mög­licht komplette Fle­xi­bi­li­tät – Res­sour­cen können schnell hin­zu­ge­schal­tet oder aus der Kon­fi­gu­ra­ti­on genommen werden.

Die Server-Lösungen un­ter­schei­den sich in Fle­xi­bi­li­tät und Ab­rech­nungs­mo­dell. Cloud Server und Dedicated Server werden mi­nu­ten­ge­nau ab­ge­rech­net. Sobald Sie die Res­sour­cen wieder freigeben, den Server also löschen, kommen auch keine Kosten mehr auf Sie zu. Bei einem vServer hingegen müssen Sie ein mo­nat­li­ches Budget einplanen. Ein Cloud Server bietet zudem sehr hohe Fle­xi­bi­li­tät: Mit nur wenigen Klicks fügen Sie weitere Res­sour­cen (Spei­cher­platz, Ar­beits­spei­cher, Pro­zes­sor­ker­ne) zu Ihrem Server hinzu oder entfernen diese wieder.

Schritt für Schritt zum RTMP-Server

In der folgenden Anleitung zeigen wir Ihnen, wie Sie einen RTMP-Server ganz einfach selbst aufsetzen können. Für das Beispiel verwenden wir einen Cloud Server von IONOS mit Windows. Wenn Sie eine Linux-Dis­tri­bu­ti­on als Server-Be­triebs­sys­tem verwenden, müssen Sie die Anleitung an be­stimm­ten Stellen anpassen.

Schritt 1: Ver­bin­dung zum Server aufbauen

Zuerst müssen Sie sich mit Ihrem Server verbinden. Dafür loggen Sie sich in Ihr Nut­zer­kon­to bei IONOS ein und na­vi­gie­ren in den Bereich „Server & Cloud“. Nachdem Sie den passenden Vertrag aus­ge­wählt haben, gelangen Sie in das Cloud Panel. Dort finden Sie in den Zu­gangs­da­ten den Link „Remote-Desktop-Ver­bin­dung“. Wenn Sie auf den Link klicken, lädt Ihr Browser eine Datei herunter, mit der Sie dann au­to­ma­tisch die korrekten Ein­stel­lun­gen für das Windows-Tool „Re­mo­te­de­sk­top­ver­bin­dung“ laden. Sie müssen an­schlie­ßend nur noch das Passwort eintragen (dieses sehen Sie ebenfalls im Cloud Panel) und dann die Ver­bin­dung her­stel­len. So gelangen Sie zum Desktop Ihres Servers.

Bild: Ansicht des Cloud Panels von IONOS bei einem RTMP-Server
In den Server-Ein­stel­lun­gen im Cloud Panel finden Sie die benötigte Datei für die Remote-Ver­bin­dung zu Ihrem RTMP-Server.

Auch wenn Sie nicht an einem Windows-PC arbeiten, können Sie eine Fern­ver­bin­dung her­stel­len. Hierfür laden Sie eine ent­spre­chen­de Remote-Desktop-Software herunter und verwenden die In­for­ma­tio­nen aus dem Cloud Panel, um sich auf dem Server ein­zu­log­gen.

Schritt 2: NGINX mit RTMP-Modul in­stal­lie­ren

Für den RTMP-Server verwenden wir NGINX. Die Software ist ei­gent­lich ein Webserver, er­mög­licht mithilfe eines zu­sätz­li­chen Moduls aber auch das Streaming per RTMP.

Hinweis

Das of­fi­zi­el­le NGINX-Windows-Paket enthält das RTMP-Modul nicht stan­dard­mä­ßig. Für die Nutzung von RTMP benötigen Sie eine NGINX-Version, die mit dem Dritt­an­bie­ter-Modul nginx-rtmp-module kom­pi­liert wurde. Mit dem Befehl nginx -V können Sie prüfen, ob das RTMP-Modul in Ihrer Version enthalten ist. In der Ausgabe sollte ein Hinweis auf „nginx-rtmp-module“ er­schei­nen.

Laden Sie also eine vor­kom­pi­lier­te Version der Software herunter, in der das Modul bereits enthalten sein sollte. Ein Beispiel hierfür ist die Build-Variante nginx-rtmp-win32, die als Windows-Binary auf GitHub be­reit­ge­stellt wird. Solche Versionen enthalten das RTMP-Modul bereits ein­kom­pi­liert und ersparen das auf­wen­di­ge manuelle Kom­pi­lie­ren. Mithilfe der Ein­ga­be­auf­for­de­rung können Sie NGINX dann starten. Na­vi­gie­ren Sie dafür im Kom­man­do­zei­len­pro­gramm zu dem ent­pack­ten Ordner und starten Sie den Webserver mit nur einem Kommando:

start NGINX
bash

Es wird kein neues Fenster geöffnet, der Server läuft im Hin­ter­grund. Um zu testen, ob die NGINX-Software funk­tio­niert, können Sie im Browser die IP-Adresse des Servers öffnen. Sie sollten nun einen Hinweis zu NGINX sehen.

Schritt 3: RTMP kon­fi­gu­rie­ren

Damit Ihr Server auch für RTMP bereit ist, müssen Sie nun noch die Kon­fi­gu­ra­ti­ons­da­tei anpassen. Suchen Sie im NGINX-Ordner nach der Datei „nginx.conf“. Diese können Sie mit einem Text­edi­tor öffnen. Ans Ende der Datei fügen Sie folgenden Code ein:

rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# HLS aktivieren
hls on;
hls_path C:/nginx/hls;
hls_fragment 3s;
hls_playlist_length 30s;
}
}
}
http {
server {
listen 8080;
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root C:/nginx;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
}
}
nginx

Diese Kon­fi­gu­ra­ti­on sorgt dafür, dass Ihr Server ein­ge­hen­de Streams über RTMP auf Port 1935 ent­ge­gen­nimmt. Innerhalb der Anwendung live wird der Stream ver­ar­bei­tet und mit ak­ti­vier­ter HLS-Funktion zu­sätz­lich in kleine Vi­deo­da­tei­en und eine Playlist-Datei um­ge­wan­delt.

Der http-Block stellt diese HLS-Dateien an­schlie­ßend über Port 8080 bereit, sodass sie im Browser oder in kom­pa­ti­blen Playern ab­ge­spielt werden können. Während RTMP also für das Ein­spei­sen (Ingest) des Streams verwendet wird, übernimmt HLS die ei­gent­li­che Aus­lie­fe­rung an die Zu­schaue­rin­nen und Zuschauer.

Um die neue Ein­stel­lung zu über­neh­men, wechseln Sie noch einmal in die Ein­ga­be­auf­for­de­rung und starten NGINX neu:

NGINX -s stop
start NGINX
bash
Hinweis

Ohne zu­sätz­li­che Schutz­maß­nah­men kann grund­sätz­lich jede Person, die Ihre Server-Adresse kennt, einen Stream auf Ihrer Anwendung „live“ ver­öf­fent­li­chen. Das kann zu Miss­brauch oder un­er­wünsch­ten Streams führen. Um das zu ver­hin­dern, können Sie den Zugriff zum Beispiel auf bestimmte IP-Adressen oder ein internes Netzwerk ein­schrän­ken. Fügen Sie dazu innerhalb des application live-Blocks in Ihrer Kon­fi­gu­ra­ti­ons­da­tei folgende Zeilen ein:

application live {
	live on;
allow publish 192.168.1.0/24;
deny publish all;
}
nginx

In diesem Beispiel dürfen nur Geräte aus dem Netzwerk 192.168.1.x einen Stream an den Server senden. Alle anderen Ver­bin­dun­gen werden au­to­ma­tisch blockiert.

Schritt 4: Port freigeben

Damit andere Nut­ze­rin­nen und Nutzer auch auf Ihren Stream zugreifen können, müssen Sie den ent­spre­chen­den TCP-Port in der Server-Firewall freigeben. Als IONOS-Kunde melden Sie sich hierzu in Ihrem Konto an und öffnen dann das Cloud Panel. Im Menüpunkt „Netzwerk“ finden Sie die Firewall-Ein­stel­lung. Dort müssen Sie den TCP-Port 1935 freigeben.

Bild: Cloud Panel: Firewall-Einstellung des Servers mit freigegebenem Port für RTMP
Geben Sie im Cloud Panel den Port 1935 frei, damit man Ihren Streaming-Server aufrufen kann.

Wenn Sie HLS nutzen, müssen Sie ebenfalls eine ent­spre­chen­de Regel für Port 8080 erstellen. Neben der Firewall im Cloud Panel muss auch die Windows-Server-Firewall angepasst werden. Öffnen Sie hierfür die Microsoft Defender Firewall mit er­wei­ter­ter Si­cher­heit und erstellen Sie eine neue ein­ge­hen­de Regel für TCP-Port 1935 (RTMP) sowie ge­ge­be­nen­falls Port 8080 (HLS).

Al­ter­na­tiv können Sie die Regel mit einem einfachen Befehl auch per Power­Shell erstellen:

New-NetFirewallRule -DisplayName "RTMP Server" -Direction Inbound -Protocol TCP -LocalPort 1935 -Action Allow
bash
Hinweis

In einigen Un­ter­neh­mens­netz­wer­ken oder öf­fent­li­chen WLANs ist der stan­dard­mä­ßi­ge RTMP-Port 1935 gesperrt. In solchen Fällen kann RTMP al­ter­na­tiv über Port 443 (TCP) betrieben werden, der üb­li­cher­wei­se für HTTPS-Ver­bin­dun­gen offen ist. Diese Kon­fi­gu­ra­ti­on erfordert jedoch eine an­ge­pass­te Server- und NGINX-Kon­fi­gu­ra­ti­on und richtet sich eher an fort­ge­schrit­te­ne An­wen­de­rin­nen und Anwender.

Schritt 5: Stream starten

Nun haben Sie alle Ein­stel­lun­gen vor­ge­nom­men und können Streams senden. Dafür benötigen Sie noch die passende Software. Sehr beliebt ist bei­spiels­wei­se OBS. In der Streaming-Software müssen Sie dann Ihren Server ent­spre­chend eintragen:

rtmp://<IP-Adresse>/live/stream
txt

Tragen Sie die korrekte IP-Adresse Ihres Servers ein. Die In­for­ma­ti­on finden Sie auch im Cloud Panel. Über diese URL gelangt der Live-Stream zunächst auf den RTMP-Server; die ei­gent­li­che Wie­der­ga­be für Zu­schaue­rin­nen und Zuschauer erfolgt an­schlie­ßend über ein separates Aus­lie­fe­rungs­pro­to­koll wie HLS.

Zum Hauptmenü