我有一台Mobotix相机。它是一个IP摄像机。在API中,它们为我们提供了通过
我尝试过的是像打开普通摄像头一样打开它:
cv::VideoCapture capture("http://...");
cv::Mat frame;
if (capture.isOpened())
// always false anyway.
while(1)
{
capture.read(frame);
cv::imshow("Hi there", frame);
cv::waitkey(10);
}
仅供引用:Developer Mobotix API Docs
编辑:现在感谢berak我只需要将&data = v.mjpg添加到选项:
?stream=full&fps=5.0&noaudio&data=v.mjpg
请注意,在v.mjpg中,仅[dot] mjpg很重要,您也可以放置myfile.mjpg。
现在的问题是提要更新的速度。我有2秒的延迟,再加上提要非常慢。
当我更改MxJPG或mxg的流选项时,我得到了损坏的图像,其中字节没有正确排序。
编辑:我尝试直接通过mobotix控制中心更改相机参数,但只有分辨率影响了我的OpenCV程序,而没有实际更改访问图像的速度。
最佳答案
对于最大速度使用fps = 0在api文档中
就像是
http://cameraip/cgi-bin/faststream.jpg?stream=full&fps=0
见http://developer.mobotix.com/paks/help_cgi-image.html
faststream是mjpeg流(用于图像捕获),请确保已关闭mxpeg并选择能够提供足够分辨率的最小图像。即使用640 x 480(将其设置为camera webgui)使其工作,然后增加图像尺寸。
请注意,这是为了捕获图像而不是视频,您需要检测每个jpeg的开头和结尾,然后从接收缓冲区复制到内存。
vlc可以处理mxpeg,但是需要从命令行以vlc --ffmpeg-format = mxg开始,或者在gui中设置编辑选项ffmpeg-format = mxg
见https://wiki.videolan.org/MxPEG