我遇到一个问题,让OpenCV 2.4从Raspberry Pi的MJPEG流中捕获,我在浏览器中检查了流URL并且它似乎工作正常,但是当我尝试在OpenCV中打开它时,似乎当我试图打开它时挂起(我在终端上都没有收到错误或成功消息)。
cv::VideoCapture vcap;
cv::Mat raw_image;
const string videoStreamAddress = "http://192.168.0.28:8080/?action=stream";
if(!vcap.open(videoStreamAddress))
{
cout<<"Error opening video stream"<<endl;
return -1;
}
cout<<"Stream opened"<<endl;
我正在使用MJPEG-Streamer来提供流。 捕获形成RTSP视频流时,相同的代码可以正常工作。
编辑:我尝试更改Pi上raspistill
捕获的图像的JPEG质量和分辨率,现在我收到消息说该流无法打开。
答案 0 :(得分:3)
尝试添加虚拟参数,提示mjpeg内容:
const string videoStreamAddress = "http://192.168.0.28:8080/?action=stream&type=mjpg";
答案 1 :(得分:2)
我找到了答案,它与Hitesh建议的类似,我只需要.
mjpg
才能使OpenCV认为它是文件的URI。
我在this中找到了类似问题的答案。