Verwendung von ONVIF-Clients zur Ansicht von Videostreams

ONVIF-Clients können viele verschiedene Dinge sein: angefangen von erweiterten, benutzerdefinierten Überwachungssystemen bis zu grundlegendsten Media Playern.

Wenn Sie eine permanente Datenschutzmaske auf Ihr Video angewendet haben, können Sie das Video nicht von einem ONVIF Client aus streamen.

Dieser Abschnitt zeigt Beispiele zur Verbindung mit der Milestone Open Network Bridge.

Verwenden Sie einen Netzwerk-Video-Client zur Ansicht eines Live-Streams

Dieses Beispiel zeigt die ordnungsgemäße Installation des ONVIF Device Manager und Konfiguration zum Streamen von Live-Video aus einer XProtect-Installation.

Der ONVIF Device Manager ist ein kostenloser, Open Source Network-Video-Client von iDeviceDesign, der den ONVIF-Standards entspricht. Mit dem Tool können Videos von ONVIF-fähigen Kameras in einem Netzwerk leicht gefunden und betrachtet werden. Der ONVIF Device Manager streamt allerdings nur Live-Videos. Zusätzlich dazu, können Sie die Videodaten in dem Stream nicht erfassen und speichern.

Der ONVIF Device Manager unterstützt die Codecs FIPS 140-2 oder H.265 nicht.

Bevor Sie beginnen, müssen Sie über folgende Informationen verfügen:

  • Die Anmeldeinformationen für den Benutzer, der für die Milestone Open Network Bridge erstellt wurde
  • Die IP-Adresse oder Computername des Computer, auf der die Milestone Open Network Bridge installiert ist

Gehen Sie wie folgt vor, um das ONVIF Device Manager zu installieren:

  1. Gehen Sie zur Website von Sourceforge ONVIF Device Manager (https://sourceforge.net/projects/onvifdm/) und laden Sie das Installationsprogramm herunter und führen Sie es anschließend aus. Sie können den ONVIF Device Manager auf jedem Computer installieren.
  2. Wenn die Installation vollständig ist, wird ein Symbol auf Ihrem Desktop verfügbar. Doppelklicken Sie auf das Symbol, um den ONVIF Device Manager zu starten.
  3. Wenn Sie den ONVIF Device Manager starten, erkennt er automatisch ONVIF-konforme Geräte im Netzwerk. Er könnte aber gegebenenfalls die Milestone Open Network Bridge nicht erkennen.
    • Wenn er es tut, gehen Sie zu Schritt 6
    • Wenn er es nicht tut, fügen Sie die Bridge manuell hinzu. Machen Sie bei Schritt 4 weiter
  4. Zum Hinzufügen einer Milestone Open Network Bridge, klicken Sie auf Hinzufügen.
  5. Im Dialogfenster Gerät hinzufügen, im Feld URI, geben Sie Name oder IP-Adresse des Computers an, auf dem die Milestone Open Network Bridge installiert ist, sowie die ONVIF-Portnummer. Beispielsweise könnte der String folgendermaßen aussehen: http://[IP-Adresse]:580/onvif/device_service.
  6. Nachdem Sie die Bridge hinzugefügt haben, finden Sie diese am unteren Ende der Geräte-Liste. Wählen Sie diese aus.
  7. Geben Sie die Anmeldeinformationen für den Benutzer ein, der für den ONVIF-Client über der Liste erstellt wurde. Wenn es sich dabei um einen Windows-Benutzer handelt, müssen Sie den Benutzernamen für die Domäne \eingeben.

Verwenden Sie einen Media Player, um ein Videostream anzusehen

Dieses Beispiel beschreibt die Verwendung des VLC Media Players zum Abruf und der Ansicht eines Live-Videofeeds oder aufgezeichnetem Videos von einer Kamera in einer XProtect-Installation.

Der VLC Media Player ist ein kostenloser, Open Source Multimedia Player von VideoLan, der verschiedene Streaming-Protokolle (einschließlich RTSP) unterstützt. Zum Beispiel ist die Verwendung vom VLC Media Player nützlich, wenn Sie einen sehr schnellen Weg für die Verbindung zu einer Kamera oder als Verbindungstest zu einer Kamera benötigen.

Wenn Sie sich mit einer Kamera verbinden, um ein aufgezeichnetes Video anzusehen, streamt die Milestone Open Network Bridge die Videosequenzen, beginnend bei der ersten Sequenz.

Bevor Sie beginnen, sollten Sie sich die folgenden Informationen von der Person verschaffen, welche die XProtect-Installation verwaltet:

  • Die Anmeldeinformationen für das Benutzerkonto, welches der Milestone Open Network Bridge zugewiesen ist
  • Die IP-Adresse oder Computername des Computer, auf der die Milestone Open Network Bridge installiert ist

Je nach dem von Ihnen verwendeten Schema benötigen Sie außerdem die folgenden Informationen:

  • Wenn Sie rtsp://[rtsp_server]:554/live/[camera_id] verwenden

    Dann brauchen Sie die GUID des Gerätes, von dem Sie Video streamen möchten

    Die Kamera-GUID ist in Management Client verfügbar. Wählen Sie den Aufzeichnungsserver, dem die Kamera hinzugefügt wurde und wählen Sie dann die Kamera aus, um die GUID zu finden. Klicken Sie auf die Registerkarte Info, drücken und halten Sie STRG auf Ihrer Tastatur und klicken Sie dann auf die Video-Vorschau der Kamera.

  • Wenn Sie rtsp://[rtsp_server]:554/live/[camera_id]/[stream_number] verwenden

    So benötigen Sie die Streamnummer. Dies ist ein Zahlenwert zwischen 0 und 15.

  • Wenn Sie rtsp://[rtsp_server]:554/live/[camera_id]/[stream_id] verwenden

    So benötigen Sie die Stream-ID. Dies ist die GUID, anhand derer der Stream in der XProtect VMS bezeichnet wird.

    Die XProtectVMS-GUIDs der aktuellen Multistreaming-Implementierung, die die Streams angeben, sind fest eingestellt auf:

    • 28dc44c3-079e-4c94-8ec9-60363451eb40 - für Stream 0

    • 28dc44c3-079e-4c94-8ec9-60363451eb41 - für Stream 1

    • ...

    • 28dc44c3-079e-4c94-8ec9-60363451eb4f - für Stream 15

Diese Beschreibung basiert auf VLC 2.2.4 für Windows.

Folgen Sie diesen Schritten, um den VLC Media Player zu installieren und sich mit ihm zu einem XProtect-System zu verbinden:

  1. Gehen Sie zu https://www.videolan.org/vlc/ und laden Sie dann das Installationsprogramm für den VLC Media Player herunter.
  2. Führen Sie das Installationsprogramm aus, und folgen Sie den schrittweisen Anweisungen.
  3. Auf der Symbolleiste, klicken Sie auf Medien und wählen dann Netzwerkstream öffnen.
  4. Im Dialogfenster Medium öffnen, geben Sie die folgende RTSP Zeichenkette ein. Ersetzen Sie die Variablen in den eckigen Klammern [Milestone Open Network Bridge IP Address] und [Camera GUID] durch die korrekten Informationen:
    • Geben Sie zur Anzeige eines Live-Videostreams rtsp://[Milestone Open Network Bridge IP Address]:554/live/[Camera GUID] ein.
    • Geben Sie zur Anzeige eines aufgezeichneten Videos rtsp://[Milestone Open Network Bridge IP Address]:554/vod/[Camera GUID] ein.
  5. Klicken Sie auf Wiedergabe und geben Sie dann den Benutzernamen und Passwort des Benutzerkontos ein, das zur Milestone Open Network Bridge hinzugefügt wurde.

Video-Wiedergabe verwalten

Die Wiedergabesteuerung entspricht den RTSP-Standards und den ONVIF-Streamingvorgaben (https://www.onvif.org/profiles/specifications/).

Zusammenfassung der Aufnahmen

Sie erhalten einen Überblick über alle aufgezeichneten Videos, die in dem Gerät verfügbar sind, indem Sie den Befehl GetRecordingSummary eingeben. Das ist nicht notwendig, aber es liefert nützliche Informationen vor der Durchführung einer Suche.

Sie können GetRecordingSummary und/oder GetMediaAttributes verwenden, um den Zeitstempel der ersten und der letzten Aufnahme zu erhalten, Sie müssen jedoch zuerst die Einstellung Konfigurationen von Kameras verwenden für das Milestone Open Network Bridge Plug-in in der XProtect Management Client aktivieren.

Das Kontrollkästchen "Konfigurationen von Kameras verwenden" im Bereich Open Network Bridge-Informationen.

Legen Sie ein Proxy für den RecordingSearch an, unter Nutzung des Service-Endpunkts, der von GetServices zurückgegeben wird. Erstellen Sie Frage- und Antwortobjekte, dann rufen Sie GetRecordingSummary an.

SearchBindingProxy searchProxy( &soapSearch );

std::string searchEndpoint = "http://" + host + "/onvif/recording_search_service";

_tse__GetRecordingSummary tse__GetRecordingSummary;

_tse__GetRecordingSummaryResponse tse__GetRecordingSummaryResponse;

result = searchProxy.GetRecordingSummary( searchEndpoint.c_str(), NULL,

   &tse__GetRecordingSummary, &tse__GetRecordingSummaryResponse );

Suche nach Aufnahmen

Die Suchdienstmethode FindRecordings startet eine asynchrone Suche in der Kamera. FindRecordings gibt ein Token zurück, das sich auf die Suchergebnisse bezieht. Obwohl nur eine Aufzeichnung verfügbar ist, ist eine Suche der richtige Weg, um eine Referenz für diese Aufzeichnung zu erhalten.

Senden Sie eine Anfrage FindRecordings mit den folgenden obligatorischen Parametern:

  • SearchScope > IncludedSources > Token – Sie müssen den GUID Token der Kamera angeben
  • SearchScope > RecordingInformationFilter – String mit den folgenden Parametern:
    • timestamp (in UTC-Format)
    • maxTimeBefore (die Zeit vor dem angeforderten Zeitstempel, in Millisekunden)
    • maxCountBefore (die maximale Anzahl von Spuren vor dem angeforderten Zeitstempel)
    • maxTimeAfter (die Zeit nach dem angeforderten Zeitstempel, in Millisekunden)
    • maxCountAfter (die maximale Anzahl von Spuren nach dem angeforderten Zeitstempel)

Beispielsweise:

boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20

Sie erhalten eine Antwort mit einem SearchToken, die einzigartig für das Suchkriterium ist.

Reichen Sie den SearchToken an GetRecordingSearchResults weiter, und Sie erhalten eine Liste mit allen Spuren, die den Suchkriterien entsprechen.

Wiedergabe starten

Wenn Sie Video abspielen, liegt die standardmäßige Geschwindigkeit bei 1 (normale Wiedergabe vorwärts).

Die Wiedergabe wird mittels der RTSP PLAY Methode gestartet. Ein Bereich kann bestimmt werden. Wenn kein Bereich angegeben wird, spielt der Stream von Beginn bis zum Ende ab, oder wenn der Stream pausiert wurde, wird er ab diesem Zeitpunkt fortgesetzt. In diesem Beispiel, „Bereich: npt=3-20“ weist den RTSP Server an, die Wiedergabe von der dritten bis zur 20. Sekunde zu starten.

Beispielsweise:

PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0

CSeq: 123

Session: 12345678

Require: onvif-replay

Range: npt=3-20

Rate-Control: no

Wiedergabe rückwärts

ONVIF Geräte KÖNNTEN Wiedergabe rückwärts unterstützen. Wiedergabe rückwärts verwendet laut Anzeige des Skalierungsfeld einen negativen Wert. Damit Sie beispielsweise ohne Datenverlust rückwärts wiedergeben können, wird ein Wert von -1,0 verwendet.

Die Milestone Open Network Bridge unterstützt Werte [-32 : 32].

PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0

CSeq: 123

Session: 12345678

Require: onvif-replay

Range: clock=20090615T114900.440Z

Rate-Control: no

Scale: -1.0

Geschwindigkeit ändern

Die Geschwindigkeit wird durch die RTSP Geschwindigkeit-Steuerung kontrolliert. Wenn „Geschwindigkeit-Steuerung=ja“, bestimmt der Server die Wiedergabegeschwindigkeit. Der Stream wird mittels des Standard-RTP Timing Mechanismus in Echtzeit wiedergegeben. Wenn „Geschwindigkeit-Steuerung=nein“, bestimmt der Client die Wiedergabegeschwindigkeit. Geschwindigkeitsgesteuerte Wiedergabe wird im Normalfall nur von Nicht-ONVIF spezifischen Clients verwendet, da diese nicht „Geschwindigkeit-Steuerung=nein“ festlegen.

Benutzen Sie die angegeben Steuerelemente, um Wiedergabegeschwindigkeit in einem Client zu kontrollieren. Beim VLC Media Player beispielsweise, wählen Sie Wiedergabe > Geschwindigkeit > Schneller oder Langsamer. Dies erhöht bzw. verringert die Geschwindigkeit um 0,5.

Schneller (fein) und Langsamer (fein) verändern die Geschwindigkeit um 0,25.

Verwaltung der Wiedergabe des VLC Media Players mittels Befehlszeileneingaben

Sie können Video-Wiedergabe im VLC Media Player mittels Befehlszeilen verwalten. Detaillierte Informationen finden Sie in der VLC-Befehlszeilen-Hilfe (https://wiki.videolan.org/VLC_command-line_help/).

Solche Befehle erlauben es Ihnen unter anderem, rückwärts wiederzugeben und die Startzeit der Wiedergabe zu verändern.

Ein Beispiel für eine typische Befehlszeile:

>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"

Wo:

  • Rate sind die Skalierungs- und Geschwindigkeitsparameter
  • Start-Zeit ist Sekunden nach dem Start der Datenbank

Folgend finden Sie die Wiedergabesteuerung für VLC Media Player:

Code

Was kann ich mit den Code tun?

Eingabe-Wiederholung=

<Integer [-2147483648 .. 2147483647]>

Eingabewiederholungen

Anzahl der Wiederholungen derselben Eingabe

Start-Zeit=

<float>

Startzeit

Der Stream startet an dieser Position (in Sekunden)

Stopp-Zeit=

<float>

Stoppzeit

Der Stream stoppt an dieser Position (in Sekunden)

Lauf-Zeit=

<float>

Laufzeit

Der Stream läuft über diesen Zeitraum (in Sekunden)

Eingabe-Schnell-Suche

Keine-Eingabe-Schnell-Suche

Schnellsuche (standardmäßig deaktiviert)

Bevorzugt Geschwindigkeit über Genauigkeit bei Suche

rate=

<float>

Wiedergabegeschw.

Dies bestimmt die Wiedergabegeschwindigkeit (normale Geschwindigkeit liegt bei 1,0)

Eingabe-Liste=

<string>

Eingabeliste

Sie können die Eingaben in einer durch Kommata geteilte Liste angeben, die miteinander nach der Normalen verknüpft werden

Eingabe-Slave=

<string>

Eingabe-Slave (experimentell)

Dies erlaubt es Ihnen, mehrere Eingaben zur selben Zeit wiederzugeben. Diese Funktion ist experimentell und unterstützt daher nicht alle Formate. Benutzen Sie ein „#“ zur Unterteilung von Eingaben