재생 제어는 RTSP 표준 및 ONVIF 스트리밍 규격을 준수합니다.
레코딩 요약
GetRecordingSummary
명령을 이용해 장치에 이용 가능한 모든 레코딩된 비디오의 개요를 볼 수 있습니다. 필수는 아니지만 검색을 실행하기 전에 유용한 정보를 제공합니다.
GetRecordingSummary
및/또는 GetMediaAttributes
명령을 사용해 첫 번째와 마지막 레코딩의 타임스탬프를 얻을 수 있지만 먼저 XProtect Management Client의 Milestone ONVIF Bridge 플러그 인에서 고급 설정 탭의 카메라로부터 구성을 활성화해야 합니다.
GetServices
에 의해 반환된 서비스 엔드포인트를 이용해 RecordingSearch
서비스에 대한 프록시를 생성합니다. 요청과 응답 개체를 생성하고 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 );
레코딩 검색
검색 서비스 메소드 FindRecordings
는 카메라에서 비동기 검색을 시작합니다. FindRecordings
는 검색 결과를 참조하는 토큰을 반환합니다. 하나의 레코딩만 있더라도 검색은 해당 레코딩에 대한 참조를 획득하기에 적절한 방법입니다.
다음 필수 매개변수를 이용해 FindRecordings
요청을 전송합니다.
SearchScope
> IncludedSources
> Token
– 이 카메라 GUID 토큰을 제공해야 합니다SearchScope
> RecordingInformationFilter
– 다음 매개변수를 가진 문자열:timestamp
(UTC 형식)maxTimeBefore
(요청된 타임스탬프 이전의 시간: 밀리초)maxCountBefore
(요청된 타임스탬프 이전의 최대 트랙 수)maxTimeAfter
(요청된 타임스탬프 이후 시간: 밀리초)maxCountAfter
(요청된 타임스탬프 이후 최대 트랙 수)예:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
검색 조건에 고유한 SearchToken
을 가진 응답을 얻게 됩니다.
SearchToken
을 GetRecordingSearchResults
로 전달하면 검색 조건에 해당하는 모든 트랙이 포함된 목록을 얻게 됩니다.
재생 개시
비디오 재생을 볼 때, 기본 속도는 1(앞으로 진행되는 보통 재생)입니다.
재생은 RTSP PLAY 메서드를 이용해 개시됩니다. 범위를 지정할 수 있습니다. 범위가 지정되지 않은 경우, 스트림은 처음부터 재생되어 끝까지 재생하며, 스트림이 일시 정지될 경우, 일시 정지된 지점에서 재시작됩니다. 이 예에서, “Range: npt=3-20”은 RTSP 서버가 3번째 초부터 시작하여 20번째 초까지 재생하도록 지시합니다.
예:
PLAY rtsp://basic:basic@bgws-pvv-04:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0
CSeq: 123
세션: 12345678
필수: onvif-replay
범위: npt=3-20
속도 제어: no
뒤로 재생
ONVIF 장치는 뒤로 재생을 지원할 수 있습니다. 뒤로 재생은 음의 값을 가진 스케일 헤더 필드를 이용해 나타냅니다. 예를 들어, 데이터 손실 없이 뒤로 재생하려면 –1.0의 값이 사용됩니다.
Milestone ONVIF Bridge는 값 [-32 : 32]를 지원합니다.
PLAY rtsp://basic:basic@bgws-pvv-04:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0
CSeq: 123
세션: 12345678
필수: onvif-replay
범위: clock=20090615T114900.440Z
속도 제어: no
스케일: -1.0
속도 변경
속도는 RTSP 속도 제어 헤더에 의해 제어됩니다. "속도 제어=yes"일 경우, 서버가 재생 속도의 제어 상태에 있습니다. 스트림은 표준 RTP 타이밍 메커니즘를 이용해 실시간으로 전달됩니다. "속도 제어=no"일 경우, 클라이언트가 재생 속도의 제어 상태에 있습니다. 속도 제어된 재생은 일반적으로 “속도 제어=no”를 지정하지 않는 비-ONVIF 특정 클라이언트에 의해서만 사용됩니다.
클라이언트에서 재생 속도를 제어하려면 제공된 컨트롤러를 사용하십시오. 예를 들어, VLC 미디어 플레이어를 이용하면, 재생 > 속도 > 빠르게 또는 느리게를 선택합니다. 이렇게 하면 속도를 0.5씩 증가 또는 감소시킵니다.
빠르게 미세 조정 및 느리게 미세 조정은 0.25씩 속도를 변경합니다.
명령줄 입력으로 VLC 미디어 플레이어 재생 관리
명령줄을 이용해 VLC 미디어 플레이어에서 비디오 재생을 관리할 수 있습니다. 자세한 내용은 VLC 명령줄 도움말을 참조하십시오.
그런 명령을 이용해 예컨대 뒤로 재생하거나 재생 시작 시간을 변경할 수 있습니다.
일반적인 명령줄의 예:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://basic:basic@bgws-pvv-04:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
여기서:
다음은 VLC 미디어 플레이어에 대한 재생 제어입니다.
input-repeat= |
<integer [-2147483648 .. 2147483647]> 입력 반복 동일한 입력이 반복되는 횟수 |
start-time= |
<float> 시작 시간 스트림은 이 위치(초)에서 시작됩니다 |
stop-time= |
<float> 정지 시간 스트림은 이 위치(초)에서 중지됩니다 |
run-time= |
<float> 실행 시간 스트림이 이 기간(초) 동안 실행됩니다 |
input-fast-seek no-input-fast-seek |
빠른 찾기(기본 비활성화) 찾는 동안 정밀도보다 속도 우선 |
rate= |
<float> 재생 속도 재생 속도를 정의합니다(명목 속도는 1.0) |
input-list= |
<string> 입력 목록 일반적인 입력 뒤에 함께 연결될 쉼표 구분 입력 목록을 제공할 수 있습니다. |
input-slave= |
<string> 입력 슬레이브(실험적) 여러 입력으로부터 동시에 재생할 수 있습니다. 이 기능은 실험적이며 모든 형식이 지원되지는 않습니다. '#' 분리된 입력 목록 사용 |
bookmarks= |
<string> 스트림 목록 북마크 스트림에 대한 북마크 목록을 "{name=bookmark-name,time=optional-time-offset,bytes=optional-byte-off set},{...}" 양식에 수동으로 제공할 수 있습니다 |
© 2019 Milestone Systems A/S