| 영어 | 한국어 | 중국어 | 일본어 |
APIs: playback
녹화 이미지 가져오기
채널 번호, 서브 스트림 인덱스 및 시간 정보를 지정하여 녹화된 이미지를 얻을 수 있습니다.
기본 서브 스트림 인덱스는 0으로, 주 스트림을 나타냅니다.
🛠️ (frame_image, frame_info) = get_image(ch_no, year, month, day, hour, minute, second, sub_idx=idx)
↩️ frame_image: 비디오 이미지를 나타내는 numpy 배열.
· 픽셀 형식이 "BGR"인 경우, 이미지의 형태는 (height, width, 3)입니다.
↩️ frame_info: 비디오 이미지 정보를 담은 딕셔너리.
· frame_info['timestamp']: Unix 타임스탬프.
· frame_info['timestamp_msec']: 밀리초 단위 타임스탬프.
· frame_info['message']: 에러 메시지.
다음 API를 사용하여 비디오 출력 설정을 변경할 수 있습니다:
🛠️ set_image_size(width, height): 출력 비디오 크기를 설정합니다. (기본값: 원본 비디오 크기)
🛠️ set_pixel_format("PIXEL_FORMAT"): 출력 비디오 포맷을 설정합니다. "RGB" / "BGR" / "0RGB" / "0BGR" 중에서 선택할 수 있습니다. (기본값: "RGB")
playback = vmspy.playback()
if not playback.init(address, port, access_id, access_pw):
print(playback.get_error())
playback.set_image_size(720, 480)
playback.set_pixel_format("BGR")
(frame_image, frame_info) = playback.get_image(1, 2025, 4, 17, 5, 24, 30)
연속된 녹화 이미지 가져오기
채널 번호, 시작 시간, 그리고 초 단위의 간격을 지정하여 녹화된 이미지 시리즈를 얻을 수 있습니다.
간격(interval)을 0으로 설정하면 전체 프레임 모드가 됩니다.
🛠️ ret = start(ch_no, year, month, day, hour, minute, second, interval=sec, sub_idx=idx)
↩️ ret: 성공 시 True, 실패 시 False.
시작 후, 지정된 간격마다 연속된 프레임을 받을 수 있습니다:
🛠️ (frame_image, frame_info) = get_frame()
↩️ frame_image: 비디오 이미지를 나타내는 numpy 배열.
· 픽셀 형식이 "BGR"인 경우, 이미지의 형태는 (height, width, 3)입니다.
↩️ frame_info: 비디오 이미지 정보를 담은 딕셔너리.
· frame_info['timestamp']: Unix 타임스탬프.
· frame_info['timestamp_msec']: 밀리초 단위 타임스탬프.
· frame_info['message']: 에러 메시지.
playback.set_image_size(720, 480)
playback.set_pixel_format("BGR")
playback.start(1, 2025, 4, 17, 5, 24, 30, interval=10) # 매 10초마다
while True:
(frame_image, frame_info) = playback.get_frame()
if frame_image.size == 0:
print(frame_info['message'])
break
# 분석 수행
playback.stop()
저장비디오 파일 이미지 가져오기
파일 ID와 시간 정보를 지정하여 저장비디오 파일의 이미지를 얻을 수 있습니다.
파일 ID와 타임스탬프는 `utils.get_file_list()` 함수로 얻을 수 있습니다.
🛠️ (frame_image, frame_info) = get_file_image(file_id, timestamp)
↩️ frame_image: 비디오 이미지를 나타내는 numpy 배열.
· 픽셀 형식이 "BGR"인 경우, 이미지의 형태는 (height, width, 3)입니다.
↩️ frame_info: 비디오 이미지 정보를 담은 딕셔너리.
· frame_info['timestamp']: Unix 타임스탬프.
· frame_info['timestamp_msec']: 밀리초 단위 타임스탬프.
· frame_info['message']: 에러 메시지.
위에서 설명한 것과 동일하게 비디오 출력 설정을 변경할 수 있습니다.
playback = vmspy.playback()
if not playback.init(address, port, access_id, access_pw):
print(playback.get_error())
playback.set_image_size(720, 480)
playback.set_pixel_format("BGR")
(frame_image, frame_info) = playback.get_file_image(29513186, 1770790997)
연속된 저장비디오 파일 이미지 가져오기
파일 ID, 시간 정보, 초 단위의 간격을 지정하여 저장비디오 파일의 이미지 시리즈를 얻을 수 있습니다.
파일 ID와 타임스탬프는 `utils.get_file_list()` 함수로 얻을 수 있습니다.
간격(interval)을 0으로 설정하면 전체 프레임 모드가 됩니다.
🛠️ ret = start_file(file_id, timestamp, interval=sec)
↩️ ret: 성공 시 True, 실패 시 False.
시작 후, 지정된 간격마다 연속된 프레임을 받을 수 있습니다:
🛠️ (frame_image, frame_info) = get_frame()
↩️ frame_image: 비디오 이미지를 나타내는 numpy 배열.
· 픽셀 형식이 "BGR"인 경우, 이미지의 형태는 (height, width, 3)입니다.
↩️ frame_info: 비디오 이미지 정보를 담은 딕셔너리.
· frame_info['timestamp']: Unix 타임스탬프.
· frame_info['timestamp_msec']: 밀리초 단위 타임스탬프.
· frame_info['message']: 에러 메시지.
playback.set_image_size(720, 480)
playback.set_pixel_format("BGR")
playback.start_file(29513186, 1770790997, interval=10) # 매 10초마다
while True:
(frame_image, frame_info) = playback.get_frame()
if frame_image.size == 0:
print(frame_info['message'])
break
# 분석 수행
playback.stop()


