运行.EXE文件时无法访问IP摄像头

时间:2015-01-05 12:56:57

标签: c++ opencv video-streaming video-capture ip-camera

我正在使用Visual Studio 2010和OpenCV 2.3.1库。我只是想从IP摄像机流式传输视频并在其中进行一些处理。在尝试这样的时候,当我在VS2010中运行项目时,它运行正常。但是当我尝试将其作为EXE文件运行时它无效。但同样的程序适用于非网络摄像头,如USB网络摄像头(作为项目文件和.EXE文件)

我删除了我的.EXE文件所在文件夹所需的DLL文件(DLL文件是opencv_calib3d231d.dll,opencv_core231d.dll,opencv_features2d231d.dll,opencv_flann231d.dll,opencv_highgui231d.dll,opencv_imgproc231d.dll ,opencv_objdetect231d.dll,opencv_video231d.dll,tbb_debug.dll)

我在一个未知功能,文件C:\ slave \ WinInstallerMegaPack \ src \ opencv \ modules \ core \ src \ array.cpp中出现“Bad Flag(参数或结构字段)(无法识别或不支持的数组类型)”时出错,第2482行“

我的代码是

#include "stdafx.h"
#include<iostream>
#include"opencv2\opencv.hpp"
#include"opencv2\highgui\highgui.hpp"
#include"opencv\cv.h"

using namespace std;
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
    Mat f;
    const string s="http://<username:password>@<IP address:portno>/axis-  cgi/mjpg/video.cgi?.mjpg";
    VideoCapture cap;
    cap.open(s);

    if(!cap.isOpened())
         cout<<"Cannot be accessed";
    while(8)
    {
        cap>>f;
        imshow("Live stream",f);

        if(waitKey(30)==27)
            break;
    }

    return 0;
}

有人请帮我摆脱这个...... 在此先感谢...

1 个答案:

答案 0 :(得分:0)

谢谢。谢谢。非常感谢@Micka。我只是将opencv_ffmpeg.dll链接到我的程序就解决了我的问题。或者将dll文件放入存在.EXE文件的文件夹中。再次感谢你。