opencv-videoWriter写视频操作(三)

# cv.VideoWrite(filename,fourcc,fps,frameSize,isColor = Ture) 将多个视频帧保存为视频文件
    filename:视频保存路径;
    fourcc可选参数: DIVX;XVID;MJPG;X264;WMV1;WMV2;常用:X264常用于小视频;MJPG
    frame:帧数;
    size:窗口大小;
    isColor(可选,默认为True): 是否原彩
    步骤一: 先设置fourcc: fourcc = cv.VideoWriter_fourcc(*'MJPG')  # 括号内也可以这么写:(‘M','J','P','G')
    步骤二: 创建对象: vw = cv.VideoWriter("写入目标文件",fourcc,fps,(size_w,size_h))注:size设置大小必须符合采集摄像头分辨率或者视频分辨率。
    步骤三: 在cap.read()读取到视频帧后,可以调用vw.writer(frame)写入到指定目标文件。
    步骤四: 释放vw对象:vw.release()
# cap.isOpened()判断摄像头是否打开,返回布尔值
    实现一个读取视频及保存到指定目录下的小案例:
        
import cv2 as cv
#--------------------------------
# 创建VideoWriter为写多媒体文件
fourcc = cv.VideoWriter_fourcc(*'XVID')
vw = cv.VideoWriter('./video/out.mp4', fourcc, 50, (1280, 720))

# 创建窗口
cv.namedWindow('video', cv.WINDOW_NORMAL)

# 获取视频设备
# cap = cv.VideoCapture(0)# 获取摄像头,默认为0
cap = cv.VideoCapture('./video/cars.mp4')# 根据视频获取图片,唯一的变化仅参数改为视频路径

while True:
    # 判断摄像头是否打开
    # if cap.isOpened():
        # 从摄像头读取视频帧
        ret, frame = cap.read()# 返回俩参数,参数一:ret表示意思是否读取到视频帧,参数二是读到的视频帧
        # 显示视频帧
        cv.imshow('video', frame)
        cv.resizeWindow('video', 640, 360)
        if ret:
            # 写数据到多媒体文件
            vw.write(frame)

            key = cv.waitKey(1)
            if key & 0xFF == ord('q'):
                break
        else:
            print('读取完成或未读到数据')
            break
    # else:
    #     print('摄像头打开失败')
    #     break

# 释放Videocapture
cap.release()
# 释放vw资源
vw.release()
# 释放窗口
cv.destroyAllWindows()

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值