首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV Python Rtsp流

OpenCV Python Rtsp流
EN

Stack Overflow用户
提问于 2017-07-04 16:38:14
回答 2查看 10.8K关注 0票数 3

我想要使用rtsp从IP摄像头流传输视频。但我有个问题。我已经安装了必备设备。另外,我的rtsp链接可以在Vlc播放器上工作。但当我在编辑器中尝试并运行它时,它显示找不到摄像头。

这是我的代码。

代码语言:javascript
复制
import cv2
import numpy as np
cap = cv2.VideoCapture("rtsp://admin:admin@xxx.xxx.xxx.xxx:xxx/media/video1/video")

while True:
    ret, img = cap.read()
    if ret == True:
    cv2.imshow('video output', img)
    k = cv2.waitKey(10)& 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()
EN

回答 2

Stack Overflow用户

发布于 2017-07-05 00:20:32

请务必检查您的opencv安装是否具有打开视频的功能。对于此尝试

代码语言:javascript
复制
cap=cv2.VideoCapture(r"path/to/video/file")
ret,img=cap.read()
print ret

如果retTrue,那么您的opencv安装具有处理视频所需的编解码器,然后确认RTSP地址是正确的。

如果retFalse,则使用steps here重新安装opencv。我建议从源代码构建opencv。但是先尝试一下预构建库。

票数 2
EN

Stack Overflow用户

发布于 2019-10-22 09:51:07

通过设置以下环境变量,我能够解决在Python中使用OpenCV (使用FFMPEG构建)打开RTSP流的问题:

代码语言:javascript
复制
import os
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;udp"

FFMPEG默认使用TCP传输,但某些RTSP源是UDP,因此这将为FFMPEG设置正确的模式。

然后使用:

代码语言:javascript
复制
cv2.VideoCapture(<stream URI>, cv2.CAP_FFMPEG)

ret, frame = cap.read()

while ret:
    cv2.imshow('frame', frame)
    # do other processing on frame...

    ret, frame = cap.read()
    if (cv2.waitKey(1) & 0xFF == ord('q')):
        break

cap.release()
cv2.destroyAllWindows()

像往常一样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44901028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档