无法使用 openCv 从 D-Link DCS 932L 获取视频源
Posted
技术标签:
【中文标题】无法使用 openCv 从 D-Link DCS 932L 获取视频源【英文标题】:Unable to get Video feed from D-Link DCS 932L using openCv 【发布时间】:2013-12-16 12:02:09 【问题描述】:我正在尝试显示来自 IP 摄像机(D-Link DCS 932L)的视频源。我已经浏览了相同的主题并尝试了不同帖子的代码,但无法从相机获取视频源。 这是我尝试过的代码。
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv;
int main(int argc, char *argv[])
Mat frame;
namedWindow("video", 1);
String url = "http://admin:admin@172.32.20.55:80/image/jpeg.cgi";
VideoCapture cap(url);
/* VideoCapture cap(0);*/
while ( cap.isOpened() )
cap >> frame;
if(frame.empty()) break;
imshow("video", frame);
if(waitKey(30) >= 0) break;
return 0;
我尝试了许多不同类型的网址,但我无法显示任何视频供稿。我认为这可能是代码问题,所以我什至尝试显示 USB 网络摄像头并且它工作正常。所以现在我得出结论,问题似乎出在正在传递的 URL 上。这是我尝试过的网址列表。我从 iSpy 获得了这个 URL 选项。这里是那些 URL 的
(JPEG)http://admin:admin@172.32.20.55:80?IMAGE.JPG
(JPEG)http://admin:admin@172.32.20.55:80/image/jpeg.cgi
(MPEG)http://admin:admin172.32.20.55:80/video.cgi?resolution=VGA
(MPEG)http://admin:admin172.32.20.55:80/video/mjpg.cgi
(MPEG)http://admin:admin172.32.20.55:80/mjpeg.cgi? user=admin&password=admin&channel=0
(MPEG)http://admin:pnqadmin172.32.20.55:80/VIDEO.CGI
请告诉我显示视频供稿时可能出现的问题。 他们是否与 OpenCv 的设置或其他有关。请注意,我正在使用 VS2010 和 C++ 需要所有专家的帮助。 提前致谢。
【问题讨论】:
try :http://172.32.20.55:80/video/mjpg.cgi?dummy=.mjpg
(即帮助捕获解决 mjpg 格式)还有什么 admin:admin 应该做什么?
我不知道有一个 ctor 重载需要一个 url ;(
@berak: admin:admin 是用户名和密码。
请说这些不是实际的用户名/密码..
在 CMD warning: Error opening file <../../modules/highgui/src/cap_ffmpeg_impl.hpp:529>
上收到一条消息。你能告诉我是什么问题吗?
【参考方案1】:
我解决了我的问题。问题出在 URL 上。我更改了网址,它运行顺利..! 我使用的网址如下。
"http://USER:PWD@IPADDRESS:8088/mjpeg.cgi?user=USERNAME&password=PWD&channel=0&.mjpg";
【讨论】:
【参考方案2】:我不断收到同样的错误:
warning: Error opening file <../../modules/highgui/src/cap_ffmpeg_impl.hpp:529>
我试图从 Foscam IP 摄像机流式传输 MJPG 视频。 URL 打开得很好,但我无法读取任何帧。可能是视频编解码器有问题。
这是一个用 Python 编写的对我有用的 hack:https://***.com/a/18411168/3183051
【讨论】:
【参考方案3】:也许我的回答为时已晚。检查 opencv_ffmpegXXX.dll 或 opencv_ffmpegXXX_64.dll(如果您正在构建 64 位可执行文件)是否在您的可执行文件所在的同一文件夹中。用你使用的opencv版本号替换XXX。
【讨论】:
以上是关于无法使用 openCv 从 D-Link DCS 932L 获取视频源的主要内容,如果未能解决你的问题,请参考以下文章