python-opencv写入相机拍摄的视频

该代码段定义了一个函数saveVideo,它使用OpenCV库从指定设备_id_捕获视频,并将其保存到output目录下。文件名基于当前时间戳,格式为MP4。在循环中,它读取视频帧,显示帧并将其写入输出视频文件,直到用户按q键退出。如果摄像头无法打开,程序会打印错误信息。
摘要由CSDN通过智能技术生成

代码

import os
import cv2
from datetime import datetime


def saveVideo(device_id_,out_dir_='output/'):
    cap = cv2.VideoCapture(device_id_)
    frame_w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
    frame_h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
    size = (int(frame_w),int(frame_h))
    fps = cap.get(cv2.CAP_PROP_FPS)
    
    now = datetime.now()
    suffix = f'{now.year:04}{now.month:02}{now.day:02}_{now.hour:02}{now.minute:02}{now.second:02}'
    
    video_name = suffix+".mp4"
    if not os.path.exists(out_dir_):
        os.mkdir(out_dir_)
    out_path = os.path.join(out_dir_,video_name)

    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    video_writer = cv2.VideoWriter(out_path,fourcc,fps,size)

    while(cap.isOpened()):
        ret, frame = cap.read()
        if ret == True:
            # 说明读取视频帧成功
            cv2.imshow('frame',frame)
            video_writer.write(frame)

            if cv2.waitKey(int(1000/fps)) & 0xFF == ord('q'):
                break
        else:
            print('相机打开失败')
            break




if __name__ == '__main__':
    saveVideo(device_id_=0,)
    pass

结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值