SRT-Server erstellen: Einen eigenen Streaming-Server aufsetzen

Das Secure Reliable Transport (SRT) ist ein Open-Source-Protokoll, mit dem Sie Videostreams über das Internet schicken. Wenn Sie einen eigenen SRT-Streaming-Server aufsetzen, sind Sie unabhängig von anderen Plattformen.

Was ist ein SRT-Server?

Mithilfe eines SRT-Servers übertragen Sie Videostreams in Echtzeit über das Internet. Egal ob live oder ein aufgezeichnetes Video – der Server sendet den Stream an alle Menschen, die Ihnen zusehen wollen. Der eigene Server ist dabei unabhängig von Plattformen wie Twitch oder YouTube.

Das SRT-Protokoll ist Open Source und Nutzerinnen und Nutzer können die Streaming-Lösung frei verwenden. Um Videos zu übertragen, baut SRT auf dem User Datagram Protocol (UDP) auf, das den Transport regelt. SRT fügt UDP allerdings noch einige interessante Faktoren hinzu, die das Protokoll (wie der Name schon sagt) sicher und zuverlässig machen.

Um die Übertragung sicher zu machen, verwendet SRT optional eine Verschlüsselung mit AES-128 bzw. AES-256. Den Empfängerinnen und Empfängern muss dabei der Schlüssel bekannt sein, um das Signal verarbeiten zu können. Unbeteiligte Dritte haben keine Gelegenheit, im Sinne einer Man-in-the-Middle-Attacke den Stream abzufangen oder gar zu verändern.

Das Internet ist, im Gegensatz zu anderen Übertragungsmedien, kein besonders stabiles Netzwerk. Es kommt regelmäßig bei Übertragungen zu Datenverlusten. Um dem entgegenzuwirken, setzt SRT auf das ARQ-Protokoll. Dieses überprüft, ob alle Datenblöcke auf der Empfangsseite angekommen sind, und gibt dies an die Sendungseinheit zurück. Wenn keine Bestätigung für ein Datenpaket eingetroffen ist, werden diese fehlenden Pakete – und nur diese – erneut gesendet. Der ganze Vorgang läuft so schnell ab, dass man beim Anschauen eines Streams keine Aussetzer feststellt.

Tipp

Es gibt auch andere Möglichkeiten, Ihre eigenen Videos oder Livestreams ins Netz zu übertragen. Informieren Sie sich über die verschiedenen Optionen, bevor Sie sich für einen Server entscheiden:
- RTMP-Server erstellen
- HLS-Server erstellen

Vorteile eines SRT-Servers

Mit einem eigenen SRT-Server können Sie gleich mehrere Vorteile genießen:

  • Unabhängigkeit: Wenn Sie einen eigenen Streaming-Server aufsetzen, haben Sie die komplette Kontrolle darüber, was Sie wie übertragen.
  • Open Source: Das Protokoll ist für alle Nutzer und Nutzerinnen frei verwendbar und anpassbar.
  • Sicherheit: SRT fügt Ihrem Stream eine Ende-zu-Ende-Verschlüsselung hinzu. So haben unerwünschte Dritte nicht die Möglichkeit, Ihre Streams mitzusehen.
  • Qualität: Sie können bei Ihrem SRT-Server selbst bestimmen, welches Dateiformat Sie übertragen möchten. Es sind auch hochwertige Codecs wie HEVC möglich.
  • Stabilität: Dank der Verwendung des ARQ-Protokolls bleibt der Stream stabil, auch wenn die Internetverbindung Probleme bereitet.
Fakt

Das Unternehmen Haivision, das das Protokoll erfunden hat, wurde 2018 mit einem Emmy ausgezeichnet. Das Komitee sah in SRT einen wichtigen Beitrag zur Weiterentwicklung der Videoübertragung über das Internet.

Voraussetzungen für den eigenen SRT-Server

Sie können einen SRT-Streaming-Server prinzipiell auf Ihrem PC oder Laptop zuhause laufen lassen. Doch das empfiehlt sich nur bedingt: Nur wenn Sie ein sehr kleines Publikum haben, ist diese Version denkbar. Ein professioneller Server hat den Vorteil, dass er immer verfügbar ist und auch mit vielen Zugriffen ohne Probleme umgehen kann. Worauf sollten Sie achten, wenn Sie einen Server mieten?

Prozessor (CPU)

Der SRT-Server hat kaum Anforderungen an die CPU. Wenn Sie den Server nur nutzen, um Ihre Videostreams zu verbreiten, genügt schon ein Prozessorkern. Erst wenn Sie den Server auch noch für andere Aufgaben wie die Codierung des Streams oder gar als Gameserver nutzen, müssen Sie mehr CPU-Power einplanen.

Arbeitsspeicher (RAM)

Der Arbeitsspeicher ist für die Wahl des passenden Serverpakets kaum entscheidend. 1 Gigabyte RAM reichen schon für einen Stream aus. Erst mit größeren Projekten sollten Sie mehr Arbeitsspeicher einplanen.

Festplattenspeicher

Der Server, den Sie für Ihre SRT-Streams aufsetzen, benötigt kaum Festplattenspeicher. Erst wenn Sie den Server zusätzlich zum Speichern von Medien nutzen, brauchen Sie entsprechend viel Speicherplatz. Denkbar wäre dies beispielweise, wenn Sie dort Videos ablegen, die Sie dann streamen. Auch das Aufzeichnen von Streams auf dem Server ist möglich und erfordert entsprechend viel Platz.

Bandbreite

Gerade für hochwertige Streams, mit denen Sie viele Menschen erreichen möchten, benötigen Sie eine große Bandbreite. Bei professionellen Hostern erhalten Sie in der Regel ausreichend viel Bandbreite, sodass Sie auch für viele Zuschauer und Zuschauerinnen mit perfekter Bildqualität streamen können.

SRT-Server bei IONOS: Welches Paket passt?

Sie können Ihren SRT-Streaming-Server problemlos bei IONOS erstellen. Sie haben die Auswahl aus drei verschiedenen Varianten:

  • Dedicated Server: Bei dieser Server-Art steht Ihnen eine eigene physische Instanz zur Verfügung, die Sie mit niemandem teilen müssen.
  • VPS: Diese auch als vServer bekannte Variante stellt Ihnen eine komplett virtualisierte Server-Instanz zur Verfügung.
  • Cloud: Bei einem Cloud Server genießen Sie die komplette Flexibilität, denn zusätzliche Kapazitäten lassen sich schnell und unkompliziert hinzubuchen.

Alle Server können Sie in unterschiedlichen „Größen“ wählen. Es gibt Pakete mit vergleichsweise wenig RAM, Festplattenspeicher und CPU-Leistung, und solche, die sehr umfangreich ausfallen.

Bei der Entscheidung für einen Server spielt auch der Preis eine Rolle. Cloud Server sind in der Regel günstig und werden bei IONOS minutengenau abgerechnet. Sie zahlen jeweils nur die Ressourcen, die Sie gebucht haben. Dieses Abrechnungsmodell finden Sie auch beim Dedicated Server. Diese Server-Art ist aber im Normalfall sehr viel kostspieliger, da Sie ja ein komplettes Gerät mieten. Der Virtual Private Server (VPS) liegt preislich zwischen den beiden anderen, hat aber feste monatliche Kosten.

Tipp

Unser Tipp für einen eigenen SRT-Server: Entscheiden Sie sich zunächst für einen Cloud Server S. Mit 1 GB RAM, 40 GB SSD-Speicher und einem CPU-Kern haben Sie genügend Ressourcen, um einen Stream zu erstellen. Der Vorteil des Cloud-Servers: Wenn Sie merken, dass Sie doch weitere Kapazitäten benötigen, können Sie einfach mehr hinzubuchen.

SRT-Server erstellen: Schritt für Schritt

Um einen eigenen SRT-Server zu erstellen, verwenden Sie am besten ein Linux-Betriebssystem. Dann können Sie die frei verfügbare Software SRT Live Server (SLS) nutzen. In diesem Tutorial verwenden wir Ubuntu. Der Server lässt sich komplett über das Terminal installieren. Sie benötigen keine optische Benutzeroberfläche. Es ist also kein Problem, den Server per SSH-Verbindung zu bedienen.

Hinweis

Die folgende Anleitung folgt dem Tutorial von Codexual auf YouTube. Dort finden Sie auch noch weitere Informationen, wie Sie den SRT-Server verwenden können, um von unterwegs zu streamen.

Schritt 1: SRT und Bibliotheken installieren

Zunächst aktualisieren Sie Ihr System und installieren wichtige Software und Bibliotheken, die Sie für das Aufsetzen des Servers brauchen. Hierzu gehören beispielsweise cmake (Programmierwerkzeug) und OpenSSL (Verschlüsselungsbibliothek).

apt update
apt upgrade
sudo -i
apt install libinput-dev make cmake tcl openssl zlib1g-dev gcc perl net-tools nano ssh git zip unzip tclsh pkg-config cmake libssl-dev build-essential -y

Das SRT-Protokoll beziehen Sie anschließend von GitHub:

git clone https://github.com/Haivision/srt.git
cd srt
./configure
make
git checkout v1.4.3 && ./configure && make -j8 && make install
cd ../

Schritt 2: SRT Live Server installieren

Nun können Sie die Server-Software von Gitlab herunterladen und installieren.

git clone https://gitlab.com/mattwb65/srt-live-server.git
cd srt-live-server
git checkout v1.4.3 && ./configure && make -j8 && make install
make -j8

Sie sollten eine Statusmeldung über die erfolgreiche Installation sehen.

Schritt 3: Server konfigurieren

Mit der Software erhalten Sie auch eine bereits vorgefertigte Konfigurationsdatei. Diese können Sie verwenden bzw. anpassen, oder Sie erstellen – wie in diesem Tutorial – eine neue Datei und behalten die alte nur als Backup.

mv sls.conf sls.bak
pico sls.conf

Diese neue Konfigurationsdatei füllen Sie nun. Der folgende Code ist eine gute Basis für den eigenen Server:

srt {
    worker_threads 1;
    worker_connections 200;
    http_port 8181;
    cors_header *;
    log_file /dev/stdout;
    server {
        listen 8282;
        latency 2000;
        domain_player play;
        domain_publisher live;
        default_sid play/stream/example;
        backlog 10;
        idle_streams_timeout 10;
        app {
            app_publisher stream;
            app_player stream;
        }
    }
}

In der Konfigurationsdatei sind besonders diese Punkte wichtig: Zum einen geben Sie zwei Ports frei. In unserem Fall sind das 8181 und 8282. Praktisch können Sie aber auch andere Ports wählen, solang diese noch nicht anderweitig verwendet werden. Zum anderen ist die Angabe hinter „default_sid“ wichtig. Statt „example“ können Sie auch einen anderen Begriff eintragen. Diese Stream-ID ist für manche Streaming-Tools interessant.

Speichern Sie Ihre Eingabe und verlassen Sie das Dokument. Nun müssen Sie die Pfade richtig zuweisen und können den Server starten. Um den Server zu stoppen, nutzen Sie die Tastenkombination [Strg] + [C].

cd bin
ldconfig
./sls -c ../sls.conf

Schritt 4: Ports freigeben

Damit man auf Ihre Streams zugreifen kann, müssen Sie noch die Ports freigeben. Welche das sind, haben Sie bereits in der Konfigurationsdatei eingetragen: 8181 und 8282. Zusätzlich geben Sie noch einen Port für den SSH-Zugriff frei.

ufw allow 8181/udp
ufw allow 8181/tcp
ufw allow 8282/udp
ufw allow 8282/tcp
ufw allow 22/tcp
ufw allow 22/udp

Darüber hinaus geben Sie die Ports auch in den Firewall-Einstellungen frei. Bei IONOS finden Sie diese Option im Cloud Panel unter dem Menüpunkt „Netzwerk“.

Schritt 5: Stream senden

Nachdem der Server aufgesetzt wurde, können Sie Streams an diesen senden und von dort empfangen. Dafür kommen verschiedene Tools in Frage. Besonders geeignet sind für SRT-Streams diese Software-Lösungen:

  • OBS: Das Streaming Studio ist beliebt für die unterschiedlichsten Videostreams, z. B. auch für Twitch-Streams.
  • Larix Broadcaster: Mit der mobilen App können Sie die Kamera Ihres Smartphones für den Stream verwenden.
  • VLC: Der Media Player VLC kann auch mit dem SRT-Protokoll umgehen.

Egal welche Software Sie verwenden, für das Einrichten des Streams benötigen Sie die IP-Adresse Ihres Servers und den freigegebenen Port. In unserem Fall ist das 8282. Zudem hat SRT zwei wichtige Modi: caller und listener. Als Caller bezeichnet man bei SRT die Seite, die sendet. Listener ist dementsprechend die empfangende Instanz.

Zwar sind, je nachdem welche Programme Sie verwenden, unter Umständen noch weitere Einstellungen notwendig, aber prinzipiell reicht eine URL nach dem Schema:

srt://[IP-Adresse]:[Port]?mode=[caller/listener]

Wenn Sie Ihren Stream an den Server senden, kann die URL beispielsweise so aussehen:

srt://192.168.0.1:8282?mode=caller

Die URL mit dem Listener-Modus geben Sie an Ihre Zuschauerinnen und Zuschauer. Diese können die Adresse etwa als Netzwerkquelle in den VLC-Player eintragen und Ihnen zusehen. Die URL zum Senden verwenden Sie selbst dann etwa in der Larix-App oder in OBS.

Tipp

Sie wollen gar nicht Streamer werden, sondern nur mit Ihren Freunden zusammen spielen? Neben einem Gaming-Server sollten Sie dann auch über einen eigenen Teamspeak-Server nachdenken. So können Sie sich leichter über Ihre Spiel-Strategien austauschen.