VideoWriter():视频文件等格式规定,有三个参数。
参数一:输出文件路径,名字和格式
参数二:多媒体文件编码格式(VideoWriter_fourcc()),下图是针对不同系统可以采用的编码格式
参数三:帧率(即每秒多少帧)通常是25
参数四:摄像头分辨率大小 ,一定要去仔细核对自己的摄像头分辨率,要不然不一样会保存不了视频
write():参数为mat类型,即一帧一帧数据写入文件当中
release():最后一定要释放资源
以下代码是从摄像头中录制视频保存成多媒体文件
import cv2
#创建VideoWriter为写多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
vw = cv2.VideoWriter('d:\\STUDY_OPENCV\\img\\out.avi',fourcc,25,(1280,720))
#创建窗口
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',640,480)
#获取视频设备
cap = cv2.VideoCapture(0)
#判断摄像头是否打开
while cap.isOpened():
#从摄像头读视频帧
ret, frame= cap.read()
if ret==True:
#将视频帧在窗口显示
cv2.imshow('video',frame)
#重新将窗口设定为指定大小,以防撑开
cv2.resizeWindow('video',640,480)
#写数据到多媒体文件
vw.write(frame)
#等待事件,按q,退出
key = cv2.waitKey(1) #waitKey里面若传0则会一直等待,最低1毫秒
if(key & 0xff == ord('q') ):
break
else:
break
#释放资源
cap.release()
vw.release()
cv2.destroyAllWindows()
上面代码能录制,能保存文件,但保存的多媒体文件播放不了,后来把vw参数改成640*480保存的文件就能播放了(具体原因未知)