opencv-python——调用摄像头录制并保存视频

调用摄像头录制并保存视频

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 30.0, (640,480))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,1)
        out.write(frame) # 保存视频
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

BUG解决

如果出现生成的output.avi最终大小为0KB或者是无法打开时,可能问题有两个:

问题1:尺寸不对

解决方法:

检查保存的图像的尺寸,将cv2.VideoWriter('output.avi',fourcc, 30.0, (640,480))中的尺寸改为和摄像头尺寸相同,这里直接从摄像头处获取尺寸信息,同时将编码格式改为MJPG

w = int(cap.get(3))  # 获取视频的width
h = int(cap.get(4))  # 获取视频的height
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('output.avi', fourcc, 15.0, (w, h))

问题2:out.realse()未执行

解决方法:

无论采用什么停止方法,out.realse()务必要执行,否则会影响视频的正常生成。

你可能感兴趣的:(opencv,opencv,视频处理)