Skip to main content

Milestone Open Network Bridge

Zarządzaj odtwarzaniem wideo

Last Updated: 4 minute read
Wersja2026r1
JęzykPolski

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.

W okienku Informacje Open Network Bridge zaznacz pole wyboru Użyj konfiguracji z kamery.

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 kamery

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

input-repeat=

Powtórzenia wejściowe

<liczba całkowita [-2147483648 .. 2147483647]>

Liczba powtórzeń tego samego wejścia.

Czas rozpoczęcia=

Godzina rozpoczęcia

<float>

Strumień rozpocznie się w tej pozycji (w sekundach).

Czas zatrzymania=

Godzina zatrzymania

<float>

Strumień zatrzyma się w tej pozycji (w sekundach).

czas pracy=

Czas wykonania

<float>

Strumień uruchomi się w tym czasie (w sekundach).

input-fast-search

no-input-fast-search

Szybkie wyszukiwanie (domyślnie wyłączone)

Podczas poszukiwania przedkładaj szybkość nad precyzję.

Stawka=

Szybkość odtwarzania

<float>

Definiuje to prędkość odtwarzania (prędkość nominalna to 1.0),

Input-List=

Lista wejść

<ciąg>

Można podać listę wejść rozdzielonych przecinkami, które zostaną połączone po wejściu normalnym.

input-slave=

Input slave (eksperymentalny)

<ciąg>

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 p lub + , po której następuje hhmm , oznacza dodatnie przesunięcie UTC. Na przykład 20250830T140000p0100 oznacza UTC+01:00 (czas środkowoeuropejski).

  • Stała litera m , po której następuje hhmm , oznacza ujemne przesunięcie UTC. Na przykład 20250830T140000m0800 oznacza UTC-08:00 (czas pacyficzny).