博客
关于我
python OpenCV视频的读取及保存
阅读量:804 次
发布时间: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/

    你可能感兴趣的文章
    Pytest框架环境切换实战教程!赶快收藏
    查看>>
    python - 将字符串中的日期与今天的日期进行比较
    查看>>
    python binascii.Error: Incorrect padding
    查看>>
    python ctypes库中动态链接库加载方式
    查看>>
    python cv2读取rtsp实时码流按时生成连续视频文件
    查看>>
    python datetime笔记
    查看>>
    python day01
    查看>>
    python day10
    查看>>
    python ETL工具 pyetl
    查看>>
    Python eval 函数说明
    查看>>
    python file
    查看>>
    Python FileDialog获取文件夹路径不是文件
    查看>>
    python filter过滤器的使用_python基础知识分享:zip()、filter函数和reduce如何使用?...
    查看>>
    python flask 请求code 400, message Bad request version
    查看>>
    Python Flink Stateful函数入口上的Kafka键访问
    查看>>
    Python float - str - 浮动怪异
    查看>>
    Python Flower库:分布式任务管理与监控
    查看>>
    Python for 循环和迭代器行为
    查看>>
    Python For循环多次返回
    查看>>
    python frame_python3 selenium自动化 frame表单嵌套的切换方法
    查看>>