cv :: VideoCapture适用于网络摄像头,但不适用于IP摄像头?

Mis*_*ère 6 opencv

它必须发生,我被困在我的项目的最后阶段,当我想在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;
}
Run Code Online (Sandbox Code Playgroud)

和编译器设置:

//Added to the .pro file of QtCreator
INCLUDEPATH += C:\\OpenCV243\\release\\include
LIBS += -LC:\\OpenCV243\\release\\lib \
    -lopencv_core243.dll \
    -lopencv_highgui243.dll
Run Code Online (Sandbox Code Playgroud)

我已经测试过使用相同的代码打开一个.avi文件并且它可以工作......但是公共IP摄像机URL就像http://66.184.211.231/mjpg/video.mjpg没有!那怎么回事?

通过编辑删除:我认为FFMPEG是一个问题,但是v2.4.3.有内置的FFMPEG支持和.avi文件工作,虽然我没有安装任何FFMPEG库(注意解释?)

提前致谢,

此致,Mystère先生

Mis*_*ère 6

通过从源的build\x86\mingw\bin文件夹中复制opencv_ffmpeg.dll并将其粘贴到构建的DLL旁边(通过PATH可访问的bin文件夹)来解决它:我不知道为什么,但是生成了opencv_ffmpeg_64.dll而不是.