2016年02月29日
python備忘録15(pythonとopencvによる録画プログラム)
インターバル撮影については
たくさんの公開プログラムから拾うことができますが、
インターバル動画撮影については
ありません。
そこで、自分でつくってみました。
まずは、プログラムを開始すると
10秒間録画するプログラムを以下にpythonで作成しました。
動作環境はUbuntu14.04LTSです。
一応、十秒間の録画後に、ファイル名を開始時間に改名する内容です。
あとは、crontabを用いて、必要とする時間にプログラムを起動するように
設定することで、
例) 朝6時から夕方6時まで、毎時10分間の録画を毎日繰り返すという設定も可能です。
このプログラムを作ろうと思った切っ掛けは、
こちらのHPです。外国人のアイデアはユニークだなー^^。
たくさんの公開プログラムから拾うことができますが、
インターバル動画撮影については
ありません。
そこで、自分でつくってみました。
まずは、プログラムを開始すると
10秒間録画するプログラムを以下にpythonで作成しました。
動作環境はUbuntu14.04LTSです。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cv2
import sys
import os
from time import time
# CV_FOURCC('D','I','B',' ') = 無圧縮
# CV_FOURCC('P','I','M','1') = MPEG-1 codec
# CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)
# CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
# CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
# CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
# CV_FOURCC('U', '2', '6', '3') = H263 codec
# CV_FOURCC('I', '2', '6', '3') = H263I codec
# CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec
#時間を取得
d=datetime.datetime.now().isoformat()
filerename=str(d)+'.avi'
cameraCapture = cv2.VideoCapture(0)
fps = 30
size = (int(cameraCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),
int(cameraCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
videoWriter = cv2.VideoWriter('output.avi', cv2.cv.CV_FOURCC('D', 'I', 'V', 'X'), fps, size)
start=time()
while (cameraCapture.isOpened()):
ret, frame = cameraCapture.read()
if ret == True:
# 画面表示
cv2.imshow('frame', frame)
# 圧縮
frame = cv2.resize(frame, (640, 480))
# 書き込み
videoWriter.write(frame)
# キー待ち
if cv2.waitKey(1) & 0xFF == ord('q'):
break
end=time()
if end-start >= 10:
break
else:
break
os.rename('output.avi','%s'%(filerename))
# 後処理
cameraCapture.release()
videoWriter.release()
cv2.destroyAllWindows()
一応、十秒間の録画後に、ファイル名を開始時間に改名する内容です。
あとは、crontabを用いて、必要とする時間にプログラムを起動するように
設定することで、
例) 朝6時から夕方6時まで、毎時10分間の録画を毎日繰り返すという設定も可能です。
このプログラムを作ろうと思った切っ掛けは、
こちらのHPです。外国人のアイデアはユニークだなー^^。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image