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:
Eingabetyp wählen — std.
Im Feld Cmd den FFmpeg-Pfad angeben — /usr/bin/ffmpeg.
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.
Eingabetyp wählen — std.
Im Feld Cmd den Pfad zum Kommandointerpreter angeben — /bin/bash.
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.