Das Secure Reliable Transport (SRT) ist ein Open-Source-Protokoll, mit dem Sie Vi­deo­streams über das Internet schicken. Wenn Sie einen eigenen SRT-Streaming-Server aufsetzen, sind Sie un­ab­hän­gig von anderen Platt­for­men.

Was ist ein SRT-Server?

Mithilfe eines SRT-Servers über­tra­gen Sie Vi­deo­streams in Echtzeit über das Internet. Egal ob live oder ein auf­ge­zeich­ne­tes Video – der Server sendet den Stream an alle Menschen, die Ihnen zusehen wollen. Der eigene Server ist dabei un­ab­hän­gig von Platt­for­men wie Twitch oder YouTube.

Das SRT-Protokoll ist Open Source und Nut­ze­rin­nen und Nutzer können die Streaming-Lösung frei verwenden. Um Videos zu über­tra­gen, baut SRT auf dem User Datagram Protocol (UDP) auf, das den Transport regelt. SRT fügt UDP al­ler­dings noch einige in­ter­es­san­te Faktoren hinzu, die das Protokoll (wie der Name schon sagt) sicher und zu­ver­läs­sig machen.

Um die Über­tra­gung sicher zu machen, verwendet SRT optional eine Ver­schlüs­se­lung mit AES-128 bzw. AES-256. Den Emp­fän­ge­rin­nen und Emp­fän­gern muss dabei der Schlüssel bekannt sein, um das Signal ver­ar­bei­ten zu können. Un­be­tei­lig­te Dritte haben keine Ge­le­gen­heit, im Sinne einer Man-in-the-Middle-Attacke den Stream ab­zu­fan­gen oder gar zu verändern.

Das Internet ist, im Gegensatz zu anderen Über­tra­gungs­me­di­en, kein besonders stabiles Netzwerk. Es kommt re­gel­mä­ßig bei Über­tra­gun­gen zu Da­ten­ver­lus­ten. Um dem ent­ge­gen­zu­wir­ken, setzt SRT auf das ARQ-Protokoll. Dieses überprüft, ob alle Da­ten­blö­cke auf der Emp­fangs­sei­te an­ge­kom­men sind, und gibt dies an die Sen­dungs­ein­heit zurück. Wenn keine Be­stä­ti­gung für ein Da­ten­pa­ket ein­ge­trof­fen 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 fest­stellt.

Tipp

Es gibt auch andere Mög­lich­kei­ten, Ihre eigenen Videos oder Live­streams ins Netz zu über­tra­gen. In­for­mie­ren Sie sich über die ver­schie­de­nen Optionen, bevor Sie sich für einen Server ent­schei­den:
- RTMP-Server erstellen
- HLS-Server erstellen

Vorteile eines SRT-Servers

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

  • Un­ab­hän­gig­keit: Wenn Sie einen eigenen Streaming-Server aufsetzen, haben Sie die komplette Kontrolle darüber, was Sie wie über­tra­gen.
  • Open Source: Das Protokoll ist für alle Nutzer und Nut­ze­rin­nen frei ver­wend­bar und anpassbar.
  • Si­cher­heit: SRT fügt Ihrem Stream eine Ende-zu-Ende-Ver­schlüs­se­lung hinzu. So haben un­er­wünsch­te Dritte nicht die Mög­lich­keit, Ihre Streams mit­zu­se­hen.
  • Qualität: Sie können bei Ihrem SRT-Server selbst bestimmen, welches Da­tei­for­mat Sie über­tra­gen möchten. Es sind auch hoch­wer­ti­ge Codecs wie HEVC möglich.
  • Sta­bi­li­tät: Dank der Ver­wen­dung des ARQ-Pro­to­kolls bleibt der Stream stabil, auch wenn die In­ter­net­ver­bin­dung Probleme bereitet.
Fakt

Das Un­ter­neh­men Haivision, das das Protokoll erfunden hat, wurde 2018 mit einem Emmy aus­ge­zeich­net. Das Komitee sah in SRT einen wichtigen Beitrag zur Wei­ter­ent­wick­lung der Vi­deo­über­tra­gung über das Internet.

Vor­aus­set­zun­gen für den eigenen SRT-Server

Sie können einen SRT-Streaming-Server prin­zi­pi­ell 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 pro­fes­sio­nel­ler 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 An­for­de­run­gen an die CPU. Wenn Sie den Server nur nutzen, um Ihre Vi­deo­streams zu ver­brei­ten, genügt schon ein Pro­zes­sor­kern. Erst wenn Sie den Server auch noch für andere Aufgaben wie die Codierung des Streams oder gar als Game­ser­ver nutzen, müssen Sie mehr CPU-Power einplanen.

Ar­beits­spei­cher (RAM)

Der Ar­beits­spei­cher ist für die Wahl des passenden Ser­ver­pa­kets kaum ent­schei­dend. 1 Gigabyte RAM reichen schon für einen Stream aus. Erst mit größeren Projekten sollten Sie mehr Ar­beits­spei­cher einplanen.

Fest­plat­ten­spei­cher

Der Server, den Sie für Ihre SRT-Streams aufsetzen, benötigt kaum Fest­plat­ten­spei­cher. Erst wenn Sie den Server zu­sätz­lich zum Speichern von Medien nutzen, brauchen Sie ent­spre­chend viel Spei­cher­platz. Denkbar wäre dies bei­spiel­wei­se, wenn Sie dort Videos ablegen, die Sie dann streamen. Auch das Auf­zeich­nen von Streams auf dem Server ist möglich und erfordert ent­spre­chend viel Platz.

Band­brei­te

Gerade für hoch­wer­ti­ge Streams, mit denen Sie viele Menschen erreichen möchten, benötigen Sie eine große Band­brei­te. Bei pro­fes­sio­nel­len Hostern erhalten Sie in der Regel aus­rei­chend viel Band­brei­te, sodass Sie auch für viele Zuschauer und Zu­schaue­rin­nen mit perfekter Bild­qua­li­tät streamen können.

SRT-Server bei IONOS: Welches Paket passt?

Sie können Ihren SRT-Streaming-Server pro­blem­los bei IONOS erstellen. Sie haben die Auswahl aus drei ver­schie­de­nen 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 vir­tua­li­sier­te Server-Instanz zur Verfügung.
  • Cloud: Bei einem Cloud Server genießen Sie die komplette Fle­xi­bi­li­tät, denn zu­sätz­li­che Ka­pa­zi­tä­ten lassen sich schnell und un­kom­pli­ziert hin­zu­bu­chen.

Alle Server können Sie in un­ter­schied­li­chen „Größen“ wählen. Es gibt Pakete mit ver­gleichs­wei­se wenig RAM, Fest­plat­ten­spei­cher und CPU-Leistung, und solche, die sehr um­fang­reich ausfallen.

Bei der Ent­schei­dung für einen Server spielt auch der Preis eine Rolle. Cloud Server sind in der Regel günstig und werden bei IONOS mi­nu­ten­ge­nau ab­ge­rech­net. Sie zahlen jeweils nur die Res­sour­cen, die Sie gebucht haben. Dieses Ab­rech­nungs­mo­dell finden Sie auch beim Dedicated Server. Diese Server-Art ist aber im Nor­mal­fall sehr viel kost­spie­li­ger, da Sie ja ein kom­plet­tes Gerät mieten. Der Virtual Private Server (VPS) liegt preislich zwischen den beiden anderen, hat aber feste mo­nat­li­che Kosten.

SRT-Server erstellen: Schritt für Schritt

Um einen eigenen SRT-Server zu erstellen, verwenden Sie am besten ein Linux-Be­triebs­sys­tem. Dann können Sie die frei ver­füg­ba­re Software SRT Live Server (SLS) nutzen. In diesem Tutorial verwenden wir Ubuntu. Der Server lässt sich komplett über das Terminal in­stal­lie­ren. Sie benötigen keine optische Be­nut­zer­ober­flä­che. Es ist also kein Problem, den Server per SSH-Ver­bin­dung zu bedienen.

Hinweis

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

Schritt 1: SRT und Bi­blio­the­ken in­stal­lie­ren

Zunächst ak­tua­li­sie­ren Sie Ihr System und in­stal­lie­ren wichtige Software und Bi­blio­the­ken, die Sie für das Aufsetzen des Servers brauchen. Hierzu gehören bei­spiels­wei­se cmake (Pro­gram­mier­werk­zeug) und OpenSSL (Ver­schlüs­se­lungs­bi­blio­thek).

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 an­schlie­ß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 in­stal­lie­ren

Nun können Sie die Server-Software von Gitlab her­un­ter­la­den und in­stal­lie­ren.

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 Sta­tus­mel­dung über die er­folg­rei­che In­stal­la­ti­on sehen.

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

Mit der Software erhalten Sie auch eine bereits vor­ge­fer­tig­te Kon­fi­gu­ra­ti­ons­da­tei. 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 Kon­fi­gu­ra­ti­ons­da­tei 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 Kon­fi­gu­ra­ti­ons­da­tei 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 an­der­wei­tig 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 in­ter­es­sant.

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 Tas­ten­kom­bi­na­ti­on [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 Kon­fi­gu­ra­ti­ons­da­tei ein­ge­tra­gen: 8181 und 8282. Zu­sätz­lich 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-Ein­stel­lun­gen frei. Bei IONOS finden Sie diese Option im Cloud Panel unter dem Menüpunkt „Netzwerk“.

Schritt 5: Stream senden

Nachdem der Server auf­ge­setzt wurde, können Sie Streams an diesen senden und von dort empfangen. Dafür kommen ver­schie­de­ne Tools in Frage. Besonders geeignet sind für SRT-Streams diese Software-Lösungen:

  • OBS: Das Streaming Studio ist beliebt für die un­ter­schied­lichs­ten Vi­deo­streams, z. B. auch für Twitch-Streams.
  • Larix Broad­cas­ter: Mit der mobilen App können Sie die Kamera Ihres Smart­phones 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 Ein­rich­ten des Streams benötigen Sie die IP-Adresse Ihres Servers und den frei­ge­ge­be­nen Port. In unserem Fall ist das 8282. Zudem hat SRT zwei wichtige Modi: caller und listener. Als Caller be­zeich­net man bei SRT die Seite, die sendet. Listener ist dem­entspre­chend die emp­fan­gen­de Instanz.

Zwar sind, je nachdem welche Programme Sie verwenden, unter Umständen noch weitere Ein­stel­lun­gen notwendig, aber prin­zi­pi­ell reicht eine URL nach dem Schema:

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

Wenn Sie Ihren Stream an den Server senden, kann die URL bei­spiels­wei­se so aussehen:

srt://192.168.0.1:8282?mode=caller

Die URL mit dem Listener-Modus geben Sie an Ihre Zu­schaue­rin­nen und Zuschauer. Diese können die Adresse etwa als Netz­werk­quel­le 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 nach­den­ken. So können Sie sich leichter über Ihre Spiel-Stra­te­gien aus­tau­schen.

Zum Hauptmenü