2012-02-08 100 views
2

任何人都可以向我解释为什么下面的代码不起作用?MJPEG网络流到OpenCV 2

#include "opencv/cv.h" 
#include "opencv/highgui.h" 
#include <iostream> 

int main(int, char**) { 
    cv::VideoCapture vcap; 
    cv::Mat image; 

    const std::string videoStreamAddress = "http://hg55.no-ip.org/mjpg/video.mjpg"; 
    //Yes, this stream does work! Try to paste it into your browser... 

    //open the video stream and make sure it's opened 
    if(!vcap.open(videoStreamAddress)) { 
     std::cout << "Error opening video stream or file" << std::endl; 
     return -1; 
    } 

    for(;;) { 
     if(!vcap.read(image)) { 
      std::cout << "No frame" << std::endl; 
      cv::waitKey(); 
     } 
     cv::imshow("Output Window", image); 
     if(cv::waitKey(1) >= 0) break; 
    } 
} 

此代码不能打开流...

的代码是基于这个线程一些代码:OpenCV with Network Cameras

在OpenCV 1代码在这里没有任何问题对我的作品。

非常感谢你提前

+0

您正在构建OpenCV,还是使用预编译的二进制文件?你在哪个平台上运行? – hatboyzero 2012-02-08 16:20:15

+0

我正在使用Visual Studio 2010的预构建二进制文件。OpenCV版本2.3.1。 Windows 7,x64 – hansdam 2012-02-09 00:27:04

回答

1

我想不是的OpenCV 2.3.1与Visual Studio 2010和OpenCV的2.2创建一个新项目。

这解决了我所有的问题!

+1

某些预编译的openCV binariess可能不包含网络流库文件 – 2012-02-09 20:47:39

+1

嗨,我在2.4.3中遇到了同样的问题。 :我甚至可以打开AVI文件,但不能打开http:// 66.184.211.231/mjpg/video.mjpg等相机的公开网址。我该怎么做,我应该重新编译一个特定的支持库,安装另一个库,只需复制DLL(这将是可爱的)......? – 2013-05-08 23:20:01