Python OpenCV - 動画のサムネイルを作る

動画を管理するときにはサムネイルがあると便利です。

サムネイルは、動画を再生してキャプチャしたり動画編集ソフトで切り出したりすることで作成できます。ただ数が多いと大変な作業となります。

PythonとOpenCVを使えば、動画からサムネイルを簡単に作ることができます。


インストール

まずは、OpenCVをインストールします。
1
pip install opencv_python

コーディング

Pythonでコーディングします。
1
2
3
4
5
6
7
import cv2
file = 'samp.mp4' # 動画のファイル名(パス)を指定
cap = cv2.VideoCapture(file)

cap.set(cv2.CAP_PROP_POS_MSEC, 1000) # 再生位置を第2引数にミリ秒で指定
res, img = cap.read()
cv2.imwrite('cap.png', img)
5行目ではキャプチャしたい再生位置をミリ秒で指定します。

再生位置を変えて5~7行目の処理を繰り返せば、サムネイルを繰り返し作成することができます。
(ファイル名も変更する必要がありますので気を付けてください。)


よく使うプロパティ

上記のサンプルコードでは、再生位置を指定する場合「CAP_PROP_POS_MSEC」プロパティを使いましたが、それ以外でもよく使うプロパティを表にまとめておきます。

cap.getメソッドを使ってプロパティを指定すれば、動画の各種情報が取得できます。

プロパティ名説明
CAP_PROP_POS_MSEC0再生位置を時間で表したもの(ミリ秒単位)
CAP_PROP_POS_FRAMES1再生中のフレーム番号
CAP_PROP_FRAME_WIDTH3フレームの幅
CAP_PROP_FRAME_HEIGHT4フレームの高さ
CAP_PROP_FPS5フレームレート
CAP_PROP_FRAME_COUNT7全フレーム数