基本思想:自用脚本,可实现RGB相机实时保存视频,不需要再重启进程。
from datetime import datetime
import cv2
start_viedo = False
captrue = cv2.VideoCapture(0)
captrue.set(3, 1920)
captrue.set(4, 1080)
captrue.set(cv2.CAP_PROP_FPS, 60)
w = int(captrue.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(captrue.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = captrue.get(cv2.CAP_PROP_FPS)
video_name = "af"
while True:
ret, frame = captrue.read()
cv2.namedWindow('RGB', cv2.WINDOW_AUTOSIZE)
cv2.imshow('RGB', frame)
key = cv2.waitKey(1)
if key & 0xFF == ord('s'):
start_viedo = True
now = datetime.now()
video_time = f'{now.year:04d}_{now.month:02d}_{now.day:02d}_{now.hour:02d}_{now.minute:02d}_{now.second:02d}'
videoWriter = cv2.VideoWriter(f'{video_name}_{video_time}.mp4', cv2.VideoWriter_fourcc('M','P','E','G'),
fps, (w, h))
print("开始录制...")
elif key & 0xFF == ord('q'):
break
if start_viedo == True:
while True:
ret, frame = captrue.read()
cv2.imshow('RGB', frame)
key2 = cv2.waitKey(1)
videoWriter.write(frame)
if key2 & 0xFF == ord('q') or key2 == 27:
cv2.destroyAllWindows()
start_viedo = False
print("视频录制结束!")
break
captrue.release()
videoWriter.release()