英語 | 韓国語 | 中国語 | 日本語

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