英文 | 韩文 | 中文 | 日文

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()