python3 + opencv 调用摄像头录像后保存视频
#!/usr/bin/python3
import cv2
## opening videocapture
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
## some videowriter props
sz = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
fps = 30
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
## open and set props
vout = cv2.VideoWriter()
vout.open('./output.mp4', fourcc, fps, sz, True)
cnt = 0
while cnt < 300:
cnt += 1
print(cnt)
_, frame = cap.read()
cv2.putText(frame, str(cnt), (10, 20), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 0), 1, cv2.LINE_AA)
vout.write(frame)
vout.release()
cap.release()
奇怪的是用下面这段代码就无法保存视频,原因未知
import cv2
# cap = cv2.VideoCapture(0)
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
sz = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)))
fps = 20
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
vout = cv2.VideoWriter()
vout.open('./output1.mp4', fourcc, fps, sz, True)
cnt = 0
while cnt < 100:
cnt += 1
print(cnt)
ret, frame = cap.read()
vout.write(frame)
vout.release()
cap.release()