前提・実現したいこと
opencv+webカメラで動画を撮影し、5分の動画ファイルの作成
発生している問題・エラーメッセージ
撮影時間を5分に設定しているのですが、動画ファイルでは2分程度の動画ファイルになってしまいます。
5分撮影したら5分の動画ファイルを作成するように設定したいです。
該当のソースコード
import cv2 import time import datetime import shutil import os import numpy as np cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) cap.set(cv2.CAP_PROP_BUFFERSIZE, 3) cap.set(cv2.CAP_PROP_FPS, 30) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps = int(cap.get(cv2.CAP_PROP_FPS)) fourcc = cv2.VideoWriter_fourcc('H','2','6','4') bfdt = nowdt = datetime.datetime.now() filename = 'cap' + nowdt.strftime('%Y%m%d_%H%M') + '.mp4' out = cv2.VideoWriter(filename,fourcc, fps, (width,height)) path ='/home/pi/' while(True): ret, frame = cap.read() frame = cv2.flip(frame,0) out.write(frame) cv2.imshow('frame',frame) nowdt = datetime.datetime.now() border_time = bfdt + datetime.timedelta(minutes= 5) if border_time <= nowdt: bfdt = nowdt shutil.move(path+filename,'./movie') filename = 'cap' + nowdt.strftime('%Y%m%d_%H%M') + '.mp4' out = cv2.VideoWriter(filename,fourcc, fps, (width,height)) if cv2.waitKey(30) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
補足情報(FW/ツールのバージョンなど)
python 3.7.3
回答2件
あなたの回答
tips
プレビュー