비디오 재생 관리
재생 제어는 RTSP 표준 및 ONVIF 스트리밍 규격을 준수합니다(https://www.onvif.org/profiles/specifications/).
레코딩 요약
명령을 사용하여 장치에서 사용 가능한 모든 레코딩된 비디오의 개요를 확인할 수 GetRecordingSummary 있습니다. 필수 사항은 아니지만 검색을 수행하기 전에 유용한 정보를 제공합니다.
GetRecordingSummary 및/또는 GetMediaAttributes 명령을 사용해 첫 번째와 마지막 레코딩의 타임스탬프를 얻을 수 있지만, 먼저 Milestone Open Network Bridge 의 XProtect Management Client 플러그 인에서 카메라로부터 구성 사용 설정 을 활성화해야 합니다.

다음에 의해 반환된 서비스 엔드포인트를 RecordingSearch 사용하여 서비스에 대한 프록시를 GetServices생성합니다. 요청 및 응답 개체를 만든 다음 호출합니다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 );
레코딩 검색
Search 서비스 메서드가 FindRecordings 카메라에서 비동기 검색을 시작합니다. FindRecordings 검색 결과를 참조하는 토큰을 반환합니다. 사용 가능한 레코딩이 하나뿐이지만 검색은 해당 레코딩에 대한 참조를 얻기 위한 적절한 방법입니다.
다음 필수 매개변수를 이용해 FindRecordings 요청을 전송합니다.
SearchScope>IncludedSources>Token– 이 카메라 GUID 토큰을 제공해야 합니다검색 조건에 고유한
SearchToken을 가진 응답을 얻게 됩니다.SearchScope>RecordingInformationFilter– 다음 매개변수를 가진 문자열:timestamp(UTC 형식)maxTimeBefore(요청된 타임스탬프 이전의 시간: 밀리초)maxCountBefore(요청된 타임스탬프 이전의 최대 트랙 수)maxTimeAfter(요청된 타임스탬프 이후 시간: 밀리초)maxCountAfter(요청된 타임스탬프 이후 최대 트랙 수)
예:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
SearchToken을 GetRecordingSearchResults로 전달하면 검색 조건에 해당하는 모든 트랙이 포함된 목록을 얻게 됩니다.
재생 개시
비디오 재생을 볼 때, 기본 속도는 1(앞으로 진행되는 보통 재생)입니다.
재생은 RTSP PLAY 메서드를 통해 시작됩니다. 범위를 지정할 수 있습니다. 범위가 지정되지 않은 경우, 스트림은 처음부터 재생되어 끝까지 재생되거나, 스트림이 일시 중지된 경우, 일시 중지된 지점에서 재시작됩니다. 이 예에서는 Range: npt=3-20 RTSP 서버가 3번째 초부터 시작하여 20번째 초까지 재생하도록 지시합니다.
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
뒤로 재생
ONVIF 장치는 뒤로 재생을 지원할 수 있습니다. 뒤로 재생은 음의 값을 가진 스케일 헤더 필드를 이용해 나타냅니다. 예를 들어, 데이터 손실 없이 뒤로 재생하려면 –1.0의 값이 사용됩니다.
Milestone Open Network Bridge 는 값 [-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
속도 변경
속도는 RTSP 헤더에 의해 Rate-Control 제어됩니다. 이 경우Rate-Control=yes, 서버가 재생 속도를 제어합니다. 스트림은 표준 RTP 타이밍 메커니즘을 사용하여 실시간으로 전달됩니다. 이 경우Rate-Control=no, 클라이언트가 재생 속도를 제어합니다. 속도 제어된 재생은 일반적으로 비ONVIF 특정 클라이언트가 Rate-Control=no지정하지 않기 때문에 해당 클라이언트에 의해서만 사용됩니다.
클라이언트에서 재생 속도를 제어하려면 제공된 컨트롤러를 사용하십시오. 예를 들어, VLC 미디어 플레이어를 사용하여 재생 > 속도 > 빠르게 또는 느리게 선택합니다. 이렇게 하면 속도를 0.5씩 증가 또는 감소시킵니다.
빠르게 미세 조정 및 느리게 미세 조정 은 0.25씩 속도를 변경합니다.
명령줄 입력으로 VLC 미디어 플레이어 재생 관리
명령줄을 사용하여 VLC 미디어 플레이어에서 비디오 재생을 관리할 수 있습니다. 자세한 내용은 VLC 명령줄 도움말(https://wiki.videolan.org/VLC_command-line_help/)을 참조하십시오.
그런 명령을 이용해 예컨대 뒤로 재생하거나 재생 시작 시간을 변경할 수 있습니다.
일반적인 명령줄의 예:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
여기서:
rate는 스케일 및 속도 매개변수입니다
start-time은 데이터베이스 시작 후 초입니다
다음은 VLC 미디어 플레이어에 대한 재생 제어입니다.
코드 | 목적 | 값 | 사용량 |
|---|---|---|---|
| 입력 반복 |
| 동일한 입력이 반복되는 횟수입니다. |
| 시작 시간 |
| 스트림은 이 위치(초)에서 시작됩니다. |
| 정지 시간 |
| 스트림은 이 위치(초)에서 중지됩니다. |
| 실행 시간 |
| 스트림이 이 기간(초) 동안 실행됩니다. |
| 빠른 찾기(기본 비활성화) | 찾는 동안 정밀도보다 속도가 우선입니다. | |
| 재생 속도 |
| 재생 속도를 정의합니다(명목 속도는 1.0). |
| 입력 목록 |
| 일반적인 입력 뒤에 함께 연결될 쉼표 구분 입력 목록을 제공할 수 있습니다. |
| 입력 슬레이브(실험적) |
| 여러 입력으로부터 동시에 재생할 수 있습니다. 이 기능은 실험적이며 모든 형식이 지원되지는 않습니다. '#' 구분 입력 목록을 사용합니다. |
특정 시간 범위에서 레코딩 검색
RTSP 링크의 선택적 URL 매개변수 clock을 사용하여 특정 시점에서 비디오 재생을 요청할 수 있습니다.
형식은 다음과 같습니다. rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
[start_time] 및 [end_time] 속성은 일반적으로 yyyyMMddTHHmmssZ 형식(년, 월, 일, 고정 문자 T, 24시간, 분, 초 및 고정 문자 Z)을 따릅니다.
이 속성end_time은 선택 사항입니다. 시작 시간만 요청하려면 다음 형식을 사용하십시오rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. 예를 들어, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- 2025년 8월 30일 14:00 UTC에 시작하는 스트림을 검색합니다.
고정 문자는 UTC 시간대를 Z 나타냅니다. 생략하더라도(권장하지 않음) 달리 지정되지 않는 한 시간은 UTC로 간주됩니다. 시간대를 설정하려면 지원되는 접미사 중 하나를 사용합니다.
고정 문자 또는
p그+뒤에 오는hhmm문자는 양의 UTC 오프셋을 나타냅니다. 예를 들어,20250830T140000p0100UTC+01:00(중부 유럽 시간)을 의미합니다.뒤에 오는 고정
m문자는 음의 UTC 오프셋을hhmm나타냅니다. 예를 들어,20250830T140000m0800UTC-08:00(태평양 표준시)을 의미합니다.