Estou trabalhando em uma tarefa na qual tenho que acessar a transmissão ao vivo de uma câmera IP (Edimax IC-3110P) usando o OpenCV 3. Meu sistema host é o Windows 10 e usei o Virtualbox para executar o Ubuntu 16.04 (Xenial) 64 -pouco. Eu estou usando C ++ e Code :: Blocks (IDE).
Por fim, consegui acessar a transmissão ao vivo por meio do Microsoft Visual Studio (no Windows 10) com o seguinte programa.
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int, char**) {
cv::VideoCapture vcap;
cv::Mat image;
// This works on a D-Link CDS-932L
const std::string videoStreamAddress =
"http://admin:[email protected]/mjpg/video.mjpg";
//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;
}
}
No entanto, no Ubuntu com o mesmo programa em Code :: Blocks, aparece "Erro ao carregar o fluxo de vídeo ou arquivo".
Esta câmera não suporta Linux OS, mas eu posso acessar a transmissão ao vivo através de uma barra de endereços do navegador (no Ubuntu), mas não através do meu programa.