opencv试图打开RTSP视频流失败,最终选用了HTTP视频流

环境:
1 海康威视USB摄像头,型号DS-E11
2 python 3.7.10
3 opencv 4.5.1

RTSP的失败过程复现:
1 摄像头插电脑上
2 用VLC播放器生成RTSP视频流,配置文件就用默认的H264。再开一个VLC播放器表明RTSP流能被解析成画面。
3 用如下代码(去掉while not success就会报错,不去掉就一直没反应)无法打开RTSP,报错 error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘imshow’


import cv2
import time
cap = cv2.VideoCapture("rtsp://127.0.0.1:8554/123")
#cap = cv2.VideoCapture("http://127.0.0.1:8080/123")
print("cap.isOpened(): ", cap.isOpened())
# key = cv2.waitKey(2000)
# time.sleep(20)
while cap.isOpened():

    success,frame = cap.read()
    while not success:
        success, frame = cap.read()

    # print("sucess  : ", success)
    success, frame = cap.read()
    # frame = cv2.resize(frame, (720, 720)) # 控制输出窗口的大小,这一行应该可有可无因为cv2.VideoCapture(0)无论这一行有没有都可以捕获
    cv2.imshow("myframe",frame)
    key = cv2.waitKey(1)
    if key == 27:  # 按ESC键退出
        break

cap.release()                                         #释放摄像头
cv2.destroyAllWindows()                               #关闭窗口

查了些稍微相关的资料
http://www.voidcn.com/article/p-wjlemizn-bpc.html
http://www.javashuo.com/article/p-wbwhdzye-mh.html
反正是没解决,最终选择了用VLC播放器用HTTP协议传输视频,成功用opencv打开了视频流。另外转码选项不能用默认的h264 +mp3(mp4),得用这个
在这里插入图片描述
要不然似乎也打不开(等了一两分钟没反应),这个的话啪的一下就打开了,很快啊。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值