Zarządzaj odtwarzaniem wideo
Elementy sterujące odtwarzaniem są zgodne ze standardami RTSP i specyfikacją ONVIF Streaming Specification (https://www.onvif.org/profiles/specifications/).
Podsumowanie nagrywania
Możesz uzyskać przegląd wszystkich nagrań wideo dostępnych na urządzeniu, korzystając z GetRecordingSummary Polecenie. Nie jest to wymagane, ale zapewnia przydatne informacje przed przeprowadzeniem wyszukiwania.
Możesz użyć GetRecordingSummary i/lub GetMediaAttributes aby pobrać znacznik czasu pierwszego i ostatniego nagrania, należy jednak najpierw włączyć ustawienie Użyj konfiguracji z kamer w Milestone Open Network Bridge Wtyczka w XProtect Management Client.

Utwórz serwer proxy dla RecordingSearch Usługa korzystająca z punktu końcowego usługi zwróconego przez GetServices. Tworzenie obiektów żądań i odpowiedzi, a następnie wywoływanie GetRecordingSummary.
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 );
Wyszukiwanie nagrań
Metoda usługi wyszukiwania FindRecordings Rozpoczyna asynchroniczne wyszukiwanie w kamerze. FindRecordings Zwraca token, który odwołuje się do wyników wyszukiwania. Mimo że dostępne jest tylko jedno nagranie, wyszukiwanie jest właściwym sposobem uzyskania odniesienia do tego nagrania.
Wyślij FindRecordings Żądanie z następującymi obowiązkowymi parametrami:
SearchScope>IncludedSources>Token– należy podać token GUID kameryOtrzymasz odpowiedź zawierającą
SearchToken, która jest unikatowa w przypadku kryteriów wyszukiwania.SearchScope>RecordingInformationFilter– łańcuch o następujących parametrach:timestamp(w formacie UTC)maxTimeBefore(czas przed żądanym znacznikiem czasu, w milisekundach)maxCountBefore(maksymalna liczba ścieżek przed żądanym znacznikiem czasu)maxTimeAfter(czas po żądanym znaczniku czasu, w milisekundach)maxCountAfter(maksymalna liczba ścieżek po żądanym znaczniku czasu)
Na przykład:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
Przekaż SearchToken Do GetRecordingSearchResults Otrzymasz listę ze wszystkimi ścieżkami odpowiadającymi kryteriom wyszukiwania.
Inicjowanie odtwarzania
Podczas odtwarzania wideo domyślna prędkość wynosi 1 (normalne odtwarzanie w kierunku do przodu).
Odtwarzanie inicjowane jest przy pomocy metody RTSP PLAY. Można określić zakres. Jeśli zakres nie zostanie określony, strumień jest odtwarzany od początku do końca lub, jeśli strumień jest wstrzymany, zostaje wznowiony w punkcie, w którym został wstrzymany. W tym przykładzie, Range: npt=3-20 nakazuje serwerowi RTSP rozpoczęcie odtwarzania od trzeciej do 20 sekundy.
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
Odtwarzanie do tyłu
Urządzenia ONVIF mogą obsługiwać odtwarzanie do tyłu. Odtwarzanie do tyłu jest wskazywane za pomocą pola Nagłówek skali z wartością ujemną. Na przykład do odtwarzania do tyłu bez utraty danych użyta zostanie wartość -1.0.
The Milestone Open Network Bridge Obsługuje wartości [-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
Zmień prędkość
Prędkość jest kontrolowana przez RTSP Rate-Control Nagłówek. Jeśli Rate-Control=yes, serwer kontroluje prędkość odtwarzania. Strumień jest dostarczany w czasie rzeczywistym przy użyciu standardowych funkcji pomiaru czasu systemu RTP. Jeśli Rate-Control=no, klient kontroluje szybkość odtwarzania. Powtórzenia z kontrolowaną częstotliwością będą zazwyczaj używane tylko przez klientów innych niż określone przez firmę ONVIF, ponieważ nie określą oni Rate-Control=no.
Aby sterować prędkością odtwarzania w kliencie, użyj dostarczonych kontrolerów. Na przykład w przypadku odtwarzacza multimedialnego VLC wybierz opcje Odtwarzanie > Prędkość > Szybciej lub Wolniej. Powoduje to zwiększenie lub zmniejszenie prędkości o 0.5.
Faster Fine i Slower Fine zmieniają prędkość o 0.25.
Zarządzanie odtwarzaniem multimediów VLC za pomocą wpisów wiersza polecenia
Odtwarzaniem wideo w odtwarzaczu multimedialnym VLC można zarządzać za pomocą wierszy poleceń. Patrz pomoc dla wiersza polecenia VLC (https://wiki.videolan.org/VLC_command-line_help/) dla szczegółów.
Polecenia takie pozwalają na przykład na cofnięcie odtwarzania i zmianę czasu rozpoczęcia odtwarzania.
Przykład typowego wiersza poleceń:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
Gdzie:
Prędkość jest parametrem skali i prędkości
Czas rozpoczęcia to sekunda po uruchomieniu bazy danych
Dla odtwarzacza multimedialnego VLC dostępne są następujące funkcje sterowania odtwarzaniem:
Kod | Przeznaczenie | Wartości | Użycie |
|---|---|---|---|
| Powtórzenia wejściowe |
| Liczba powtórzeń tego samego wejścia. |
| Godzina rozpoczęcia |
| Strumień rozpocznie się w tej pozycji (w sekundach). |
| Godzina zatrzymania |
| Strumień zatrzyma się w tej pozycji (w sekundach). |
| Czas wykonania |
| Strumień uruchomi się w tym czasie (w sekundach). |
| Szybkie wyszukiwanie (domyślnie wyłączone) | Podczas poszukiwania przedkładaj szybkość nad precyzję. | |
| Szybkość odtwarzania |
| Definiuje to prędkość odtwarzania (prędkość nominalna to 1.0), |
| Lista wejść |
| Można podać listę wejść rozdzielonych przecinkami, które zostaną połączone po wejściu normalnym. |
| Input slave (eksperymentalny) |
| Umożliwia to odtwarzanie z kilku wejść jednocześnie. Ta funkcja jest eksperymentalna, nie wszystkie formaty są obsługiwane. Użyj rozdzielonej '#' listy wejść. |
Pobierz nagrania z określonego zakresu czasu
Możesz zażądać odtwarzania wideo w określonym momencie, korzystając z opcjonalnego parametru adresu URL clock w łączu RTSP.
Format: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
The [start_time] i [end_time] Zazwyczaj właściwości odpowiadają formatowi yyyyMMddTHHmmssZ (rok, miesiąc, dzień, stała litera T, czas 24-godzinny, minuty, sekundy i stała litera Z).
The end_time Właściwość jest opcjonalna. Aby zażądać tylko godziny rozpoczęcia, użyj formatu: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Na przykład, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- pobierze strumień, który rozpocznie się o 14:00 UTC 30 sierpnia 2025 r.
Stała litera Z oznacza strefę czasową UTC. Nawet jeśli go pominąć (nie zalecane), czas jest nadal uważane UTC chyba że określono inaczej. Aby ustawić strefę czasową, użyj jednego z obsługiwanych sufiksów:
Stała litera
plub+po której następujehhmmoznacza dodatnie przesunięcie czasu UTC. Na przykład,20250830T140000p0100oznacza UTC+01:00 (czas środkowoeuropejski).Stała litera
mpo której następujehhmmoznacza ujemne przesunięcie czasu UTC. Na przykład,20250830T140000m0800oznacza UTC-08:00 (czas pacyficzny).