博客
关于我
python OpenCV视频的读取及保存
阅读量:798 次
发布时间:2023-03-06

本文共 1696 字,大约阅读时间需要 5 分钟。

使用 OpenCV 捕获 RTSP 流并保存为 AVI 文件

在这个教程中,我们将使用 OpenCV 库来从 RTSP 流中捕获视频流,并将其保存为 AVI 文件。以下是详细的实现步骤和代码示例。

首先,我们需要导入 OpenCV 的视频处理模块。以下是完整的代码示例:

import cv2# 初始化视频捕获对象cap = cv2.VideoCapture('rtsp://admin:hik12345@192.168.3.160/Streaming/Channels/1')# 设置视频编码格式fourcc = cv2.VideoWriter_fourcc(*'XVID')# 获取视频分辨率size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),        int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))# 创建视频写入对象out = cv2.VideoWriter('camera_test.avi', fourcc, 10.0, size)while True:    # 从视频流中读取一张图片    ret, frame = cap.read()        # 将当前帧写入视频文件    out.write(frame)        # 绘制提示信息    cv2.putText(frame,                "Press Q to save and quit",                (10, 30),                cv2.FONT_HERSHEY_SIMPLEX,                0.8,                (0, 255, 0),                2)        # 显示当前帧    cv2.imshow('frame', frame)        # 等待键盘输入    if cv2.waitKey(1) & 0xFF == ord('q'):        break# 释放视频资源cap.release()out.release()cv2.destroyAllWindows()

代码解释

  • 导入 OpenCV 模块:我们使用 cv2 模块来处理视频文件。

  • 初始化视频捕获对象cap = cv2.VideoCapture('rtsp://admin:hik12345@192.168.3.160/Streaming/Channels/1') 这行代码用于打开指定 URL 的 RTSP 视频流。

  • 设置视频编码格式fourcc = cv2.VideoWriter_fourcc(*'XVID') 使用 XVID 编码格式来创建视频文件。

  • 获取视频分辨率size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))) 获取视频的宽度和高度。

  • 创建视频写入对象out = cv2.VideoWriter('camera_test.avi', fourcc, 10.0, size) 创建一个名为 camera_test.avi 的视频文件。

  • 主循环:使用 while True 循环来持续读取和写入视频帧。

    • ret, frame = cap.read() 从视频流中读取一张图片。
    • out.write(frame) 将当前帧写入视频文件。
    • 使用 cv2.putText 绘制提示信息。
    • 使用 cv2.imshow 显示当前帧。
    • 检查键盘输入,如果按下 'q' 键则退出循环。
  • 释放资源:在循环结束后,释放视频捕获和写入对象。

  • 关闭 OpenCV窗口cv2.destroyAllWindows() 关闭所有 OpenCV 窗口。

  • 通过以上代码,你可以轻松地从 RTSP 流中捕获视频流并保存为 AVI 文件。这个过程适用于多种 RTSP 源,包括 IP 相机、摄像头等。

    转载地址:http://dlafk.baihongyu.com/

    你可能感兴趣的文章
    Python这么慢,为啥大公司还在用?
    查看>>
    python note 06 编码方式
    查看>>
    python numba 转灰度图_使用NumPy、Numba的简单使用(二)
    查看>>
    Python Numpy 关于 linspace()函数 使用详解(全)
    查看>>
    Python numpy插入、读取至postgreSQL数据库中bytea类型字段
    查看>>
    Python numpy数据的保存和读取
    查看>>
    python numpy矩阵索引_python – 在2D numpy ndarray或numpy矩阵中获取前N个值的索引
    查看>>
    Python OCR库:自动化测试验证码识别神器!
    查看>>
    python opencv - 斑点检测或圆形检测
    查看>>
    Python还可以做情感分析你不看看吗?
    查看>>
    Python OpenCV HoughLinesP 无法检测线
    查看>>
    Python OpenCV-使用透明度覆盖图像
    查看>>
    python Opencv图像基础操作
    查看>>
    Python OpenCV将图像转换为字节字符串?
    查看>>
    python OpenCV视频的读取及保存
    查看>>
    python open和file的区别
    查看>>
    python open读取文件并对换行进行处理
    查看>>
    python os, os.path和sys模块
    查看>>
    Python os.environ 处理环境变量
    查看>>
    python os.path模块常用方法详解
    查看>>