Python cv2で動画を保存・再生する方法|自動化で効率アップする手順

Pythonを使って動画を保存したり再生したりする方法を知りたいんですけど…なんだか難しそうです。
猫男
猫男
catman
catman
心配いらないさ。Pythonのcv2モジュールを使えば、動画の保存も再生も簡単にできるようになる。catmanが教えてあげるんだ。

 

Python cv2で動画を保存・再生する方法

Pythonのcv2(OpenCV)は、画像や動画の処理に強力なツールです。これを使うと、カメラからの映像をキャプチャして動画ファイルに保存したり、その動画を再生したりできます。

 

cv2とは

cv2は、OpenCVのPythonバインディングです。OpenCVは、画像処理やコンピュータビジョンに特化したライブラリです。

Pythonでの動画の保存や再生、画像処理に役立ちます。

 

Pythonで動画を保存する方法

まずはPythonを使ってカメラ映像を保存してみましょう。

 

必要なライブラリのインストール

Pythonで動画を扱うには、まずcv2をインストールする必要があります。

次のコマンドを実行して、ライブラリをインストールします。

pip install opencv-python

 

カメラ映像を動画として保存するコード

カメラから映像をキャプチャし、動画ファイルとして保存するには次のコードを使います。

import cv2

cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    out.write(frame)
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
out.release()
cv2.destroyAllWindows()

このコードを実行すると、output.aviというファイル名で動画を保存します。

 

コードの意味

コード 説明
cv2.VideoCapture(0) デフォルトカメラから映像をキャプチャします。
cv2.VideoWriter_fourcc(*'XVID') 動画のエンコード方式を設定します。
cv2.VideoWriter() 動画ファイルの出力先を指定し、保存に使用します。
cap.isOpened() カメラが正しくオープンされているか確認します。
cap.read() フレームをキャプチャして、retには成功フラグ、frameには画像データが取得されます。
out.write(frame) フレームを書き込み、動画に保存します。
cv2.imshow() キャプチャした映像をウィンドウに表示します。
cv2.waitKey(1) & 0xFF == ord('q') ‘q’キーが押された時に、ループを終了します。

 

Pythonで動画を再生する方法

次に、保存した動画を再生する方法を紹介します。

 

動画ファイルを再生するコード

import cv2

cap = cv2.VideoCapture('output.avi')

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('Video', frame)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

このコードは、指定したoutput.aviという動画ファイルを再生します。

 

コードの意味

基本的な流れは前述の動画保存とほぼ同じです。cv2.VideoCapture()を使って、ここではファイルを開きフレームを読み込み、それをウィンドウに表示します。再生速度はcv2.waitKey(25)で調整可能です。この場合、25ミリ秒ごとに新しいフレームが表示されます。

 

実際にやってみたら、意外と簡単に動画を保存して再生できました!これを使えば、プロジェクトのデモ動画も作れそうです。
猫男
猫男
catman
catman
そうなんだ。Pythonとcv2を駆使すれば、動画の編集や解析、ストリーミングも可能になる。ぜひ色々試してみると良いんだ。

 

まとめ

この方法で、Pythonを使って簡単に動画を保存したり再生したりできるようになります。

  • cv2モジュールを使うことで画像処理や動画編集が可能です。
  • VideoCaptureでカメラや動画ファイルからフレームを取得できます。
  • VideoWriterを使用して映像を動画ファイルとして保存できます。
  • 映像の再生はcv2.imshow()でウィンドウへ出力します。

Pythonを利用して自動化を進めることで、プロジェクトの作業効率が劇的に向上します。動画保存や再生を始め、様々な機能を習得していくのが良いでしょう。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。