2013-11-07 2 views
2

Вот мой формат ссылка HTTP поток (пользователя, пароль и адрес был изменен на манекен):Невозможно открыть HTTP поток: Ошибка при открытии файла (../cap_ffmpeg_impl.hpp:529)

http://username:[email protected]:8093/axis-cgi/mjpg/video.cgi 

Этот поток отлично работает в VLC. Однако I не может открыть его с помощью библиотеки OpenCV.

Вот мой код:

#include <iostream> 
#include "opencv2/opencv.hpp" 

using namespace std; 
using namespace cv; 

int main() 
{ 
    VideoCapture cap; 
    const string videoStreamAddress = "http://username:[email protected]:8093/axis-cgi/mjpg/video.cgi"; 
    cap.open(videoStreamAddress); 
    if (!cap.isOpened()) 
    { 
     cout << endl << "Videostream not found !" << endl; 
     system("pause"); 
     return 0; 
    } 

    Mat frame; 

    while(1) 
    { 
     cap >> frame; 
     if (frame.empty()) 
      break; 

     imshow("IPcamera", frame); 

     int c = waitKey(1); 
     if (c == 27) 
     { 
      break; 
     } 
    } 

    waitKey(0); 
    return 0; 
} 

Это дает мне ошибку:

warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529) 

, который указывает на:

bool CvCapture_FFMPEG::open(const char* _filename) 
{ 
    unsigned i; 
    bool valid = false; 

    close(); 

#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0) 
    int err = avformat_open_input(&ic, _filename, NULL, NULL); 
#else 
    int err = av_open_input_file(&ic, _filename, NULL, 0, NULL); 
#endif 

    if (err < 0) 
    { 
     CV_WARN("Error opening file"); 
     goto exit_func; 
    } 
... 

Что может быть проблема?

+2

любая удача ?? У меня такая же проблема – amadib

+0

@OpenMinded У меня такая же проблема - вы когда-нибудь находили решение? – Alexander

ответ

0

Вы попытались открыть видеофайл на своей машине с помощью Videocapture? (Просто добавьте путь к видеофайлу в место, где вы поместили URL-адрес) Я предполагаю, что он терпит неудачу таким же образом. Так что это проблема с ffmpeg. Вам нужно будет создать OpenCV самостоятельно с поддержкой ffmpeg. (Также выполняйте поиск по gstreamer. Я не очень хорошо знаком с этим).

Также вы можете попробовать использовать другое программное обеспечение, например ManyCam. Это позволяет вам легко читать поток так же, как вы читаете с веб-камеры.

Смежные вопросы