パソコンの内蔵カメラで動画を撮る
パソコンの内蔵カメラで動画を撮ります。OpenCVの cv2.VideoCapture で引数に動画ファイル名を指定した場合は、動画ファイルが開かれビデオキャプチャーオブジェクトに入力されますが、デバイス番号でカメラを指定すると、ビデオキャプチャーオブジェクトにカメラの画像が入力されます。デバイス番号は内蔵カメラの場合0、増設したUSBカメラは1,2・・・のように指定します。
環境
コード
実行すると内蔵カメラから5秒間画像を取り込み、動画ファイルに保存されます。動画のサイズ・レート(fps)はカメラから取得し、その値を用いています。ファイル名は撮影時の時刻を設定しています。
import datetime import cv2 # 撮影時間 length = 5 # 現在時刻の文字列を取得 now = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S') # 内蔵カメラをビデオキャプチャーオブジェクトに設定 cap = cv2.VideoCapture(0) # カメラのFPS、幅、高さ取得 fps = cap.get(cv2.CAP_PROP_FPS) w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 保存用動画ファイルのフォーマット設定 fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') out = cv2.VideoWriter(now+'.mp4', fourcc, fps, (w, h)) # 撮影時間(秒) X フレームレートの回数画面取得し # ビデオライターオブジェクトに記録 for i in range(int(length*fps)): ret, frame = cap.read() out.write(frame) # キャプチャーオブジェクトのリリース cap.release() # ビデオライターオブジェクトのリリース out.release()
実行結果
内蔵カメラで5秒間録画されたmp4ファイルが保存されます。