動画ファイルの表示(Python を使用)

概要

動画ファイルを表示するプログラムの例
import cv2

# 動画ファイルを開く
cap = cv2.VideoCapture("vtest.avi")
if not cap.isOpened():
    print("動画ファイルを開けなかった")
    exit()

# 幅、高さ、フレームレートの取得
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
fps = cap.get(cv2.CAP_PROP_FPS)

cv2.namedWindow("VideoFile", cv2.WINDOW_AUTOSIZE)

prev_index = -1
while True:
    ret, frame = cap.read()
    if not ret:
        break

    msec = cap.get(cv2.CAP_PROP_POS_MSEC)
    index = cap.get(cv2.CAP_PROP_POS_FRAMES)
    ratio = cap.get(cv2.CAP_PROP_POS_AVI_RATIO)

    cv2.imshow("VideoFile", frame)
    key = cv2.waitKey(int(1000 / fps))
    if key == 27:
        # ESC キー
        break

    print(f"width = {width}, height = {height}, fps = {fps}, index = {index}, msec = {msec}")

    # 終わりまで来たら最初に戻る
    if prev_index == index:
        cap.set(cv2.CAP_PROP_POS_AVI_RATIO, 0.0)
    prev_index = index

cap.release()
cv2.destroyWindow("VideoFile")