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.

Kopieren
"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.