openCV_python自学(3)之将视频数据录制成多媒体文件

VideoWriter():视频文件等格式规定,有三个参数。
参数一:输出文件路径,名字和格式
参数二:多媒体文件编码格式(VideoWriter_fourcc()),下图是针对不同系统可以采用的编码格式
参数三:帧率(即每秒多少帧)通常是25
参数四:摄像头分辨率大小 ,一定要去仔细核对自己的摄像头分辨率,要不然不一样会保存不了视频
openCV_python自学(3)之将视频数据录制成多媒体文件_第1张图片
openCV_python自学(3)之将视频数据录制成多媒体文件_第2张图片

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保存的文件就能播放了(具体原因未知)

你可能感兴趣的:(opencv,python,音视频)