FAQ

SRT und Login/Passwort-Authentifizierung in Drittsoftware

Die Autorisierung mit Login und Passwort in SRT zwischen Perfect-Streamer-Instanzen wird nativ unterstützt und über die entsprechenden Felder in output und input konfiguriert. Mit anderer Software ist die Funktion nicht garantiert — sie ist nicht standardisiert und in unterschiedlicher Software unterschiedlich implementiert.

Für universelle Interoperabilität zwischen Perfect Streamer und anderer Software gibt es eine Autorisierung über einen Peer, dessen Name dem Stream-ID-Wert entspricht. Beispiel-Link:

srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890

Peer-Name:

!#::u=1234567890,password=1234567890

Die Syntax der Stream-ID ist für Perfect Streamer unerheblich; beliebige Werte bis 511 Zeichen werden unterstützt.

Unterschiedliche SRT-empfangende Software kann die Stream-ID auch in ihrem eigenen Format übergeben. Funktioniert der Empfang über einen bestimmten Typ der Stream-ID-Verknüpfung nicht, können Sie am SRT-Ausgang von Perfect Streamer die Trace-Option aktivieren und im Empfangslog des Streams den Fehler sowie die tatsächlich von der Fremdsoftware ausgegebene Stream-ID einsehen. Auf dieser Grundlage lässt sich die Stream-ID korrigieren — etwa durch Entfernen überflüssiger Zeichen am Anfang der Stream-ID-Zeichenkette, die die Übergabe des Stream-ID-Werts durch die Fremdsoftware behindern.

Arbeiten mit RTSP und RTMP im Perfect Streamer mittels FFmpeg

Für RTMP und andere Transportprotokolle, für die Perfect Streamer keinen integrierten Input besitzt, lässt sich der STD-Input-Typ des Streams (stdin) verwenden. Dieselbe Methode eignet sich als Behelfslösung für nicht standardkonforme RTSP-Quellen — für reguläre RTSP gibt es in Perfect Streamer einen integrierten RTSP-Input. Es können FFmpeg, GStreamer und beliebige andere Anwendungen verwendet werden, die stdout unterstützen.

Beispielhafte Konfiguration mit FFmpeg:

  1. Eingabetyp wählen — std.

  2. Im Feld Cmd den FFmpeg-Pfad angeben — /usr/bin/ffmpeg.

  3. Im Feld Args den Befehl zum Empfang des Streams eingeben:

-loglevel error -i rtmp://192.168.1.29/channelTV/chanelSD -c copy -f mpegts -

oder

-loglevel error -i rtsp://viewer:viewer200@172.31.91.197:554/play1.sdp -c copy -f mpegts -

Hat das Kamerasignal keinen Ton, erscheinen Fehler auf der Stream-Seite. Um sie zu vermeiden, in den Stream-Typ-Einstellungen „Only Video“ wählen.

Beschreibung in der Dokumentation zur Anbindung von Drittanwendungen.

RTSP- und RTMP-Arbeit im Perfect Streamer mittels GStreamer

Für Transportprotokolle ohne integrierte Unterstützung in Perfect Streamer (zum Beispiel RTMP) sowie als Umgehungslösung für nicht standardkonforme RTSP-Quellen kann der STD-Input-Typ (stdin) für einen Stream verwendet werden. Es können FFmpeg, GStreamer und alle anderen Anwendungen verwendet werden, die stdout unterstützen.

Beispielhafte Konfiguration mit GStreamer.

  1. Eingabetyp wählen — std.

  2. Im Feld Cmd den Pfad zum Kommandointerpreter angeben — /bin/bash.

  3. Im Feld Args den Pfad zum Stream-Generator-Skript und weitere Argumente eingeben:

/opt/conf/pss/scripts/rtmp.sh rtmp://192.168.1.2/live/mmtv2025air

oder

/opt/conf/pss/scripts/rtsp.sh rtsp://viewer1:viewer300@172.34.95.198:553/play1.sdp

Die vollständige Anleitung ist im Forum verfügbar.

Skripte: scripts_gstreamer.zip.

Empfehlungen zur Arbeit mit UDP-Multicast

Aufgabe:

UDP-Multicast mit mehreren Hundert Mbit/s (1 Gbit/s und mehr) auf einem Server stabil empfangen.

Problem:

Empfang auf Netzwerkkarten mit RJ-45-Anschluss — bei Verkehr über mehrere hundert Megabit beginnen zunehmende Multicast-Verluste. Das Tuning der Netzwerkkarten-Einstellungen hilft nicht (war in alten Betriebssystemversionen relevant; in modernen werden bereits optimale Einstellungen verwendet). Auf Netzwerkkarten mit besseren Chips (Intel, Broadcom u. a.) tritt das Problem ebenfalls auf, besonders über 500 Mbit/s. Bonding zweier Netzwerkkarten löst es ebenfalls nicht.

Lösung:

Für Empfang und Übertragung von UDP-Multicast empfehlen wir Netzwerkkarten mit SFP+-Anschluss, da sie leistungsfähigere Chips verwenden. Eine günstige Karte der Klasse Intel X520-DA1/2 (Intel 82599ES) reicht aus — ihr Einsatz beseitigt das Problem von UDP-Multicast-Verlusten oberhalb 1 Gbit/s vollständig.

Als Nebeneffekt sinkt die CPU- und GPU-Last bei Verwendung des Transkoders deutlich.

Empfehlungen zur Netzwerkkonfiguration für Multicast

Netzwerkparameter in /etc/sysctl.conf setzen:

net.core.rmem_default=8388608
net.core.rmem_max=16777216

Anwenden:

sudo sysctl --system

Flussonic und SRT

Beispiel einer SRT-URL für den Empfang auf „Flussonic“:

srt://Stream_IP:port?streamid=flussonic

Hier ist streamid der Login des Clients in „Flussonic“, der unter „Konfiguration – Pair-Einstellungen“ vergeben wird.

Beim Hinzufügen eines neuen Peers genügt die Angabe des Logins — im Test-Link steht „flussonic“. Die «Flussonic»-Software erzeugt streamID automatisch bei SRT, und wird im empfangenden Link das Login streamID nicht angegeben, wird der Stream nicht empfangen, und der «Perfect Streamer» kann ihn nicht ausliefern.

Analog lässt sich streamID als Login/Passwort setzen, indem in „Perfect Streamer“ ein Peer mit dem Wert im Feld Login or IP angelegt wird: !#::u=1234567890,password=1234567890

und in „Flussonic“ den Link eintragen: srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890

Es ist möglich, streamid/login im IP-Adressformat in „Perfect Streamer“ anzugeben:

  • 192.168.1.1 (einzelne IP)

  • 192.168.1.1-192.168.1.254 (IP-Bereich; im Peer muss die Option Login is IP aktiviert sein)

In beiden Fällen sieht der IP-basierte Empfangs-Link in „Flussonic“ so aus: srt://Stream_IP:port?streamid=*

Es erfolgt eine Bindung an die Client-IP; der Empfang über diesen Link ist nur von dieser IP (oder dem IP-Bereich) aus möglich.