Python利用VideoCapture和FFmpeg读取多个rtsp流性能的比较

最近一个项目,要用python读取30个海康摄像头的rtsp流,一开始直接用cv2.VideoCapture(video_path),结果运行一段时间后发现读出来的frame经常出现花屏的现象。所以通过两种方式对程序进行了修改。

1、我先是通过cap.set(cv2.CAP_PROP_BUFFERSIZE, 3)设置缓冲区大小可能有助于减少丢帧现象。代码如下:

import cv2  # 导入 OpenCV 库,用于处理计算机视觉和视频流相关的功能。

# 设置 RTSP 视频流的路径(用户名、密码、IP 地址和视频流的 URL)。
video_path = 'rtsp://admin:123456@192.168.3.101/Streaming/Channels/1'

# 使用 cv2.VideoCapture 打开 RTSP 视频流,cap 是一个视频捕获对象。
cap = cv2.VideoCapture(video_path)

# 设置视频流缓冲区的大小,减少延迟,CAP_PROP_BUFFERSIZE 设置为 3 表示缓冲区大小为 3 帧。
cap.set(cv2.CAP_PROP_BUFFERSIZE, 3)

# 检查视频流是否成功打开并且继续读取帧。cap.isOpened() 返回 True 表示视频流打开成功。
while cap.isOpened():
    # 读取视频流中的一帧。返回值 success 表示读取是否成功,frame 为读取到的图像帧。
    success, frame = cap.read()

    # 如果成功读取到帧,则显示该帧。
    if success:
        # 使用 OpenCV 显示读取到的视频帧,"SHOW" 为窗口名称,frame 为图像数据。
        cv2.imshow("SHOW", frame
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值