Zarządzaj odtwarzaniem wideo
Elementy sterujące odtwarzaniem są zgodne ze standardami RTSP i ONVIF Streaming Specification (https://www.onvif.org/profiles/specifications/).
Podsumowanie nagrywania
Możesz uzyskać przegląd wszystkich nagrań wideo dostępnych na urządzeniu, używając polecenia GetRecordingSummary . 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, ale najpierw musisz włączyć ustawienie Użyj konfiguracji z kamer we wtyczce Milestone Open Network Bridge w XProtect Management Client.

Utwórz serwer proxy dla usługi RecordingSearch , korzystając z punktu końcowego usługi zwróconego przez GetServices. Tworzenie obiektów żądań i odpowiedzi, a następnie wywoływanieGetRecordingSummary.
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ń
FindRecordings metody usługi wyszukiwania 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 żądanie FindRecordings z następującymi obowiązkowymi parametrami:
SearchScope>IncludedSources>Token– należy podać token GUID kameryOtrzymasz odpowiedź z
SearchToken, która jest unikalna dla 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 , a 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 instruuje serwer RTSP, aby rozpoczął odtwarzanie 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.
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 nagłówek Rate-Control RTSP. W Rate-Control=yespotrzeby serwer kontroluje prędkość odtwarzania. Strumień jest dostarczany w czasie rzeczywistym przy użyciu standardowych funkcji pomiaru czasu systemu RTP. JeśliRate-Control=no, klient kontroluje prędkość odtwarzania. Powtórzenia z kontrolowaną szybkością będą zazwyczaj używane tylko przez klientów innych niż określone przez firmę ONVIF, ponieważ nie będą oni Rate-Control=nookreślać.
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ń. Szczegółowe informacje można znaleźć w pomocy wiersza polecenia VLC (https://wiki.videolan.org/VLC_command-line_help/).
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żna zażądać odtwarzania wideo w określonym momencie, korzystając z opcjonalnego parametru URL clock w łączu RTSP.
Format: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
Właściwości [start_time] i [end_time] zazwyczaj odpowiadają formatowi yyyyMMddTHHmmssZ (rok, miesiąc, dzień, stała litera T, czas 24-godzinny, minuty, sekundy i stała litera Z).
Właściwość end_time 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 rozpoczyna się o godzinie 14:00 UTC w dniu 30 sierpnia 2025 r.
Stała litera Z wskazuje 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ępujehhmm, oznacza dodatnie przesunięcie UTC. Na przykład20250830T140000p0100oznacza UTC+01:00 (czas środkowoeuropejski).Stała litera
m, po której następujehhmm, oznacza ujemne przesunięcie UTC. Na przykład20250830T140000m0800oznacza UTC-08:00 (czas pacyficzny).