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.

Different SRT receivers could send stream ID with different format, so if receiving doesn’t work you can switch on tracing option in SRT output settings and find the reason of issue in the stream log, for example you can see how actually the receiver generates the stream ID. This information can help you fix the stream ID.

Arbeiten mit RTSP und RTMP im Perfect Streamer mittels FFmpeg

Zur Unterstützung von RTSP, RTMP und beliebigen anderen, nativ in Perfect Streamer nicht unterstützten Transportprotokollen lässt sich der Stream-Typ STD input (stdin) verwenden. Möglich sind FFmpeg, GStreamer und beliebige andere Anwendungen, 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

Zur Unterstützung von RTSP, RTMP und beliebigen anderen, nativ in Perfect Streamer nicht unterstützten Transportprotokollen lässt sich der Stream-Typ STD input (stdin) verwenden. Möglich sind FFmpeg, GStreamer und beliebige andere Anwendungen, 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.