【发布时间】:2013-05-08 21:00:02
【问题描述】:
它必须发生,我被困在项目的最后阶段,当我想在我的网络摄像头和 IP 摄像头上使用我的代码时,它就像一个魅力。该 URL 在我的浏览器中完美运行,但 OpenCV 没有任何结果... 这是我的代码:
#include <opencv/highgui.h>
using namespace cv;
int main(int argc, char *argv[])
{
Mat frame;
namedWindow("video", 1);
VideoCapture cap("http://192.168.1.99:99/videostream.cgi?resolution=32&rate=0&user=admin&pwd=password&.mjpg");
while ( cap.isOpened() )
{
cap >> frame;
if(frame.empty()) break;
imshow("video", frame);
if(waitKey(30) >= 0) break;
}
return 0;
}
以及编译器设置:
//Added to the .pro file of QtCreator
INCLUDEPATH += C:\\OpenCV243\\release\\include
LIBS += -LC:\\OpenCV243\\release\\lib \
-lopencv_core243.dll \
-lopencv_highgui243.dll
我已经测试过使用相同的代码打开一个 .avi 文件并且它可以工作...但是像 http://66.184.211.231/mjpg/video.mjpg 这样的公共 IP 摄像头 URL 不能!那是怎么回事?
被编辑删除:我认为 FFMPEG 是一个问题,但 v2.4.3。尽管我没有安装任何 FFMPEG 库,但有内置的 FFMPEG 支持和 .avi 文件工作(需要解释一下吗?)
提前致谢,
问候, 神秘先生
【问题讨论】:
-
VideoCapture 类可以访问实际的视频捕获设备(网络摄像头)或打开视频文件。恐怕这不适用于通过网络访问的恒定视频流。
-
我很确定这是可能的,因为很多人都设法做到了(其中包括答案的作者there)......但不是我:/
-
ffmpeg 在这里被调用,它在 linux 上比在 win 上运行得更好(例如,在 vmbox ubuntu 客户端上完美运行,但在 host/xp 系统上却不行)
-
什么意思?使用 windows 对我来说是一个限制。
标签: opencv