【openCV学习】4.视频的保存

本文介绍了如何使用OpenCV的VideoWriter和VideoCaptureAPI进行视频录制,包括设置视频编码(如mp4v和avi)、指定帧率和分辨率,以及如何通过write()函数逐帧保存图片为视频。提供了一个完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

owooooow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值