RTSP
RTSP-Streaming verwenden
Um RTSP-Streaming zu verwenden, fügen Sie den folgenden Abschnitt in die Datei appsettings.json (C:\Program Files\Geutebrueck\GCore Web API\appsettings.json
) ein.
Mit diesen Parametern können Sie das RTSP-Streaming (siehe RTSP-Server) und das Streaming von Aufzeichnungslücken (siehe Streaming) konfigurieren.
"Streaming": {
"DBPlaybackMaximumGapMs": 5000,
"DBPlaybackGapRecoverMs": 40
},
"RTSPServer": {
"EnableRTSP": true,
"ListenV6": "[::]",
"ListenV4": "0.0.0.0",
"ListenPort": 554
//,"LogStreamFilePath": "c:\\temp"
},
RTSP-Server
Um RTSP-Streaming zu aktivieren, muss der Parameter EnableRTSP auf true gesetzt sein.
Verschlüsselung des RTSP-Streams
Sie können den RTSP-Stream mit einer VPN-Verbindung zwischen dem Client und der Web API verschlüsseln.
Wenn Sie nur den RTSP-Stream verwenden, ist ein SSL-Tunnel auch ausreichend.
Authentifizierung
Der Client sendet den Benutzernamen und das Passwort an den G-Core Server, von dem der Client den Stream erwartet. Diese Anmeldedaten werden dann verwendet, um den Benutzer für den Stream zu authentifizieren. Wenn die Authentifizierung fehlschlägt, wird eine RTSP 401-Antwort gesendet.
Es wird nur die Basisauthentifizierung unterstützt.
WICHTIG! Diese Art der Benutzerauthentifizierung ist nicht sicher und wird nicht empfohlen.
Aufgezeichneter und Live-Kanal
Die Web API unterscheidet zwischen der Wiedergabe von aufgezeichneten und Live-Kanälen.
Aufgezeichneter Kanal
Wenn ein bestimmter Zeitrahmen abgerufen wird, prüft die Web API, ob der angeforderte Zeitrahmen existiert, und spielt ihn mit der normalen 1,0x-Geschwindigkeit ab.
Beispiel
rtsp://localhost?MediaChannelIdentifier=1&Start=2022-01-31T13:05:04.447&End=2022-01-31T14:05:04.447
Start=
Startzeit im Format year-month-day T hours : minutes : seconds
.End=
Endzeit im Format year-month-day T hours : minutes : seconds
.
Live-Kanal
Wenn weder eine Start- noch eine Endzeit angefordert wird, spielt die Web API den angeforderten Medienkanal so schnell wie möglich und äquivalent zur Live-Ansicht ab.
Beispiel
rtsp://localhost?MediaChannelIdentifier=1
Streaming
Wenn Lücken in der Datenbank vorhanden sind, werden diese bei der Wiedergabe übersprungen und das nächste verfügbare Bild wird angezeigt. Sie können die Wiedergabe von Aufzeichnungslücken im Abschnitt Streaming
konfigurieren.
Parameter |
Beschreibung |
---|---|
DBPlaybackMaximumGapMs |
Definiert in Millisekunden, wie groß eine Lücke ist, die nicht als Lücke angesehen wird. |
DBPlaybackGapRecoverMs |
Definiert in Millisekunden, nach welcher Zeit das nächste verfügbare Bild abgespielt wird. |
Leistung
Um die Grenzen des G-Core Web SDK und der Web API sowie einige Funktionalitäten zu testen, wurden einige Leistungsmessungen durchgeführt.
Spezifikationen
Die folgenden Spezifikationen haben wir für die Leistungsmessung verwendet:
-
Betriebssystem: Windows 10 x64
-
CPU: Intel i7-7700
-
RAM: 8 GB
Testergebnisse
Szenario: Full HD 12,5 fps / im Freien ganz
Um die Testergebnisse vergleichbar zu machen, betrug die Dauer der einzelnen Messungen jeweils ~10 Minuten:
Anzahl der Viewer |
CPU-Nutzung |
Speicherverbrauch |
Testergebnis |
---|---|---|---|
4 |
~20% |
~45% |
Bestanden (stabil) |
8 |
~20% |
~60% |
Bestanden (stabil) |
10 |
~20% |
~80% |
Bestanden (stabil) |
14 |
~40% |
~70% |
Bestanden (stabil) |
18 |
~50% |
~80% |
Fehlgeschlagen (instabil) |
Framerate
Wir haben festgestellt, dass einige RTSP-Clients Probleme mit sehr niedrigen Bildraten haben. Wir empfehlen daher eine Bildrate von mindestens 5 FPS.