OpenCV - RTSP流无法打开

3
我有一台RTPS流媒体摄像头。当我使用VLC进行测试时,流媒体可以正常工作:vlc -vvv rtsp://192.168.0.23:554/stream。但是,在使用openCV时它无法打开:cv::VideoCapture capture; bool ok = capture.open("rtsp://192.168.0.23:554/stream"); 返回false。可能的原因是什么?
5个回答

2

我曾遇到类似的问题。在我的情况下,运行路径中缺少以"opencv_ffmpeg"开头的dll文件。


大家好,这实际上是一个正确的答案!也许还有其他情况,但添加“opencv_ffmpeg320_64.dll”(选择您的版本)解决了我的问题。谢谢。 - Alexander Lyapin

1
如果您正在使用 OpenCV 4+,则需要复制与 ffmpeg 相关的 dll 并将其粘贴到可执行文件旁边。例如,我使用 BUILD_opencv_world 选项构建了我的 OpenCV,并在我的 build 目录中的 bin 文件夹中拥有一个名为 opencv_videoio_ffmpeg430_64.dll 的文件。如果没有这个文件,它将无法打开流并显示任何内容。

0
在MacOS上,这个解决方案对我有效。
os.environ['OPENCV_FFMPEG_CAPTURE_OPTIONS'] = 'rtsp_transport;http'

传输不是TCP,而是HTTP。

-1

使用OpenCV 4中的VideoCaptuer类,在C++中使用RTSP流时无法正常工作。


-3

你可以通过以下OpenCV和Python来实现:

import cv2
str1=cv2.VideoCapture("RTSP Address")
while True:
    _,frame=str1.read()
    cv2.imshow('SOMENAME',frame)
    s=cv2.waitkey(0)

1
添加一个解释到答案会有帮助。 - Anantha Raju C
请翻译以下关于编程的内容:英文到中文。仅返回翻译后的文本内容,不进行解释。 - Jafar Tavana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接