1.一些新的API

cv2.VideoWriter_fourcc()

例子:

fourcc = cv.VideoWriter_fourcc(*'mp4v')

这是创建视频保存器所需要的第二个参数,其中*‘mp4v’代表需要保存的是.mp4类型的文件。如果想要保存.avi类型的文件,则需要把这个参数改成*'XVID'

cv2.VideoWriter()

例子:

vw = cv.VideoWriter("runs/vedio/out1.mp4",fourcc,20,(640,480))

创建一个视频保存器,与视频截取器相似,它的功能是可以利用write()函数读取一帧一帧的图片,将其合成视频,并保存在对应的路径下。其中"runs/vedio/out1.mp4"代表要将视频保存下来的路径以及文件名,fourcc是上面创建的一个变量,代表保存下来的视频的一些属性,20代表帧率,但是这个参数起不到决定保存下来的视频的帧率的作用,实际上真正起到决定视频帧率作用的是后续每隔多少毫秒write()一张图片。(640,480)代表视频的分辨率,一定要严格与要保存的视频的分辨率相同,不然肯定是保存不下来的,一般电脑的摄像头的分辨率是640*480。

videowriter.write()

例子

vw.write(fream)

其中fream是一张图片

2.完整代码

import cv2 as cv

#创建视频截取器
cap = cv.VideoCapture(0)
#这个是视频保存器所需要的第二个参数,是按什么方式保存视频,如果是avi就是XVID
fourcc = cv.VideoWriter_fourcc(*'mp4v')
#创建视频保存器     参数:文件路径,保存方式,帧率(没用),分辨率(一定要严格和电脑自带的摄像头的分辨率相同)
vw = cv.VideoWriter("runs/vedio/out1.mp4",fourcc,20,(640,480))

while cap.isOpened():
    ret,fream = cap.read()
    if not ret:
        break
    else:
        cv.imshow("video",fream)
        vw.write(fream)#只是增加了这一步
        if cv.waitKey(1000//20) == ord('q'):#两个下划线是向下取整,因为waitKey只能接收整形
            break
cap.release()
vw.release()
cv.destroyAllWindows()

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐