OpenCV读取网络摄像头视频并保存到本地

代码以及注释如下:

import cv2
import time


# 获取时间
def get_time():
    it = time.strftime("%Y%m%d%H%M%S", time.localtime())  # 不带分隔符的时间 可以用作文件名
    ft = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 时间格式
    return [it, ft]

stream = "rtsp://username:password@ip_address/ch1/main/av_stream" # 海康威视摄像头地址 用户名密码
video_path = '' # 视频保存地址
cap = cv2.VideoCapture(stream) # 读入视频
# 获取高 宽 帧率
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) 
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = max(cap.get(cv2.CAP_PROP_FPS) % 100, 0) or 25.0

if cap.isOpened() == False or w == 0 or h == 0:
    print("connect failed")

frame_count = 0 # 记录帧数
temp_path = video_path + get_time()[0] + ".mp4" # 保存路径 (拼上时间作为文件名)
# 写视频
vid_writer = cv2.VideoWriter(temp_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))
while True:
    cap.grab() # 获取下一帧
    success, im = cap.retrieve() # 解码
    if success:
        frame_count += 1 # 帧数加1
    vid_writer.write(im) # 存视频
    if frame_count > 7500: # 设定一个时间 多久保存一次
        vid_writer.release()  # 保存到本地
        frame_count = 0 # 清零
        break
    # cv2.imshow("camera", img)
    # cv2.waitKey(1)
cap.release() # 释放资源

    原文作者:1900_
    原文地址: https://blog.csdn.net/holly_Z_P_F/article/details/124331830
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞