Доступ к mjpeg-streamer в OpenCV 3.0

У меня есть raspberry pi b +, загружающий видеопоток с помощью mjpeg-streamer.

На малиновом пи

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -y -r 340x240 -f 10 -d /dev/video0" -o "/usr/local/lib/output_http.so -w /usr/local/www"

Это создает видео поток, доступный для

http://10.1.111.150:8080/?action=stream

сделать изображение в формате JPEG ->
Прямая трансляция в браузере Firefox

Теперь я хотел бы открыть этот поток с помощью OpenCV 3.0.0 в Visual Studio 2013.

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
int q;
VideoCapture cap;

//cap.open(0) for internal camera
//
cap.open("http://10.1.111.150:8080/?action=stream");if (!cap.isOpened())  // if not success, exit program
{
cout << "Cannot open the video cam" << endl << "Press q to continue:";
cin >> q;
return -1;
}

double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video
double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video

cout << "Frame size : " << dWidth << " x " << dHeight << endl;

namedWindow("MyVideo", CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"namedWindow("MyNegativeVideo", CV_WINDOW_AUTOSIZE);

while (1)
{
Mat frame;
Mat contours;

bool bSuccess = cap.read(frame); // read a new frame from video

if (!bSuccess) //if not success, break loop
{
cout << "Cannot read a frame from video stream" << endl;
break;
}

flip(frame, frame, 1);
imshow("MyVideo", frame); //show the frame in "MyVideo" window

Canny(frame, contours, 500, 1000, 5, true);
imshow("MyNegativeVideo", contours);

if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
{
cout << "esc key is pressed by user" << endl;
break;
}
}
return 0;}

Это пример кода, который работает, чтобы открыть внутреннюю веб-камеру на моем ноутбуке, когда я используюcap.open(0)
Но пытаюсь открыть ip камеру со своего адресаcap.open("http://10.1.111.150:8080/?action=stream");
не работает.

ОБНОВИТЬ
Я сделал некоторые изменения в RPi, запустив

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -y -r 340x240 -f 10 -d /dev/video0" -o "/usr/local/lib/output_rtsp.so -p /usr/local/www"

разница в том, output_rtsp.so -p

Судя по веб-камере (активный индикатор включен) и программе, запущенной в терминале Raspberry Pi, я могу предположить, что поток работает. Я не могу подтвердить это через браузер, хотя.

Бег

cap.open("rtsp://10.1.111.150:8080/?action=stream");

в коде openCV не открывается поток.

Может кто-нибудь сказать мне, где я иду не так?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]