openCVを使用し、60fpsのwebカメラにうつした動画を保存しようと思ってます。whileでループ処理で1フレームずつ所得して動画にしていきますが、このループ1周がカメラの元のfpsより遅くなる場合保存した動画が実際より速くなってしまいますがどうすればいいですか?別に60fpsから変わってしまってもいいですが、実際のスピードで保存されてその時の動画のfpsが知られるように保存したいです。
python
1 2import cv2 3import numpy as np 4 5# 0=内蔵カメラ 6cap = cv2.VideoCapture(0) 7 8fps = int(cap.get(cv2.CAP_PROP_FPS)) 9w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) 10h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) 11fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') 12out = cv2.VideoWriter('output.mp4', fourcc, fps, (w, h)) 13 14while True: 15 ret, frame = cap.read() 16 cv2.imshow('frame', frame) 17 out.write(frame) 18 19 if cv2.waitKey(1) & 0xFF == ord('q'): 20 break 21 22cap.release() 23out.release() 24cv2.destroyAllWindows() 25
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。