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 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 |