【Python】Webカメラの映像を録画して保存する方法|OpenCVでMP4出力

【Python】Webカメラの映像を録画して保存する方法|OpenCVでMP4出力 Python

PythonとOpenCVを使えば、Webカメラの映像をリアルタイムにキャプチャし、動画ファイル(MP4など)として保存することができます。防犯カメラや会議記録、実験ログなど、映像記録が必要なシーンで活用可能です。

この記事では、OpenCVを使ってカメラ映像を録画し、MP4ファイルとして保存する方法を紹介します。

必要なライブラリ

pip install opencv-python

OpenCV単体で録画からファイル出力まで可能です。

基本スクリプト:録画してMP4で保存

import cv2

# カメラ起動
cap = cv2.VideoCapture(0)

# 解像度の取得(例:640x480)
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))

# 出力ファイル名とコーデック(MP4は"mp4v")
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('output.mp4', fourcc, 20.0, (frame_width, frame_height))

print("録画開始。qキーで終了。")

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    out.write(frame)               # 映像をファイルに書き込み
    cv2.imshow('Recording', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
out.release()
cv2.destroyAllWindows()
print("録画を終了しました。")

録画ファイルの保存形式を変更する

  • MP4: fourcc = cv2.VideoWriter_fourcc(*'mp4v')
  • AVI: fourcc = cv2.VideoWriter_fourcc(*'XVID')

出力ファイル名の拡張子(例:output.avi)も合わせて指定します。

応用:録画時間を制限する

import time
start_time = time.time()

while True:
    # ...
    if time.time() - start_time > 60:  # 60秒で終了
        break

応用:録画ファイルに日付を自動付与

import datetime
now = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"record_{now}.mp4"
out = cv2.VideoWriter(filename, fourcc, 20.0, (frame_width, frame_height))

注意点

  • MP4形式の出力にはffmpegOpenCV-contribが必要な場合あり
  • 録画できない場合はコーデックをAVIに変更してテスト
  • 解像度とフレームレートは使用するカメラに依存

まとめ

PythonとOpenCVを使えば、Webカメラの映像を簡単に録画・保存できます。MP4形式で出力すれば高圧縮かつ高画質で管理しやすく、セキュリティ用途や業務記録にも応用可能です。

録画条件の自動化やファイル分割、クラウド保存と組み合わせることで、より実用的な録画システムも構築できます。まずは基本の録画処理から試してみましょう。