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.
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 angebenSearchScope>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 Methode RTSP PLAY 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 weist Range: npt=3-20 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 Rate-Control kontrolliert. Wenn Rate-Control=yes, bestimmt der Server die Wiedergabegeschwindigkeit. Der Stream wird mittels des Standard-RTP Timing Mechanismus in Echtzeit wiedergegeben. Wenn Rate-Control=no, bestimmt der Client die Wiedergabegeschwindigkeit. Geschwindigkeitsgesteuerte Wiedergabe wird im Normalfall nur von Nicht-ONVIF spezifischen Clients verwendet, da diese nicht Rate-Control=no 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 | Zweck | Werte | Verwendung |
|---|---|---|---|
| input-repeat= | Eingabewiederholungen | <Integer [-2147483648 .. 2147483647]> | Anzahl der Wiederholungen derselben Eingabe. |
start-time= | Startzeit | <float> | Der Stream startet an dieser Position (in Sekunden). |
stop-time= | Stoppzeit | <float> | Der Stream stoppt an dieser Position (in Sekunden). |
run-time= | Laufzeit | <float> | Der Stream läuft über diesen Zeitraum (in Sekunden). |
input-fast-seek no-input-fast-seek | Schnellsuche (standardmäßig deaktiviert) | Bevorzugt Geschwindigkeit über Genauigkeit bei Suche. | |
rate= | Wiedergabegeschw. | <float> | Dies bestimmt die Wiedergabegeschwindigkeit (normale Geschwindigkeit liegt bei 1,0), |
input-list= | Eingabeliste | <string> | Sie können die Eingaben in einer durch Kommata geteilte Liste angeben, die miteinander nach der Normalen verknüpft werden. |
input-slave= | Eingabe-Slave (experimentell) | <string> | 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. |
Aufzeichnungen aus einem bestimmten Zeitraum abrufen
Sie können die Videowiedergabe zu einem bestimmten Zeitpunkt anfordern, indem Sie den optionalen URL-Parameter clock in einem RTSP-Link verwenden.
Das Format ist: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
Die Eigenschaften [start_time] und [end_time] folgen in der Regel dem Format yyyyMMddTHHmmssZ (Jahr, Monat, Tag, fester Buchstabe T, 24-Stunden-Uhrzeitformat für Stunden, Minuten, Sekunden und fester Buchstabe Z).
Die Eigenschaft end_time ist optional. Verwenden Sie folgendes Format, um nur die Startzeit anzufordern: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Beispiel: rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- ruft einen Stream ab, der am 30. August 2025 um 14:00 Uhr UTC startet.
Der feste Buchstabe Z steht für die Zeitzone UTC. Selbst wenn Sie ihn weglassen (nicht empfohlen), wird die Zeitzone weiterhin als UTC interpretiert, sofern nichts anderes angegeben ist. Nutzen Sie zum Festlegen der Zeitzone das jeweils unterstützte Suffix:
-
Der feste Buchstabe p oder +, gefolgt von hhmm, steht für einen positiven UTC-Offset. Beispiel: 20250830T140000p0100 bedeutet UTC+01:00 (Central European Time).
-
Der feste Buchstabe m, gefolgt von hhmm, steht für einen negativen UTC-Offset. Beispiel: 20250830T140000m0800 bedeutet UTC-08:00 (Central European Time).