有没有人在MATLAB中捕获来自IP摄像机的视频流?例如,从rtsp://10.10.10.10:554 / live.sdp(rtsp stream)或http://x.x.x.x/axis-cgi/mjpg/video.cgi(mjpeg流)中获取MATLAB中的帧 . MATLAB的Image Acquisition Toolbox目前不支持此功能 . 我找到了2个选项:1)使用mmread . 但是在64位MATLAB下不支持http流读取或2)编写我自己的C函数来抓取帧(我使用OpenCV库)然后将其编译成MATLAB MEX函数 . 任何建议表示赞赏 .
2 回答
这是我从MATLAB支持得到的答案:
我建议你实现自己的Matlab mex函数来抓取视频帧 . 以下是一些指示:
OpenCV库用于从网络摄像机捕获视频流,请参阅OpenCV with Network Cameras . 每个IP摄像机可以具有用于访问视频流的不同API(即URL地址) . 例如,
http://10.10.10.10/axis-cgi/mjpg/video.cgi?resolution=800x600&.mjpg
.以下是OpenCV库的matlab mex函数集合和开发工具包的链接(感谢Kota Yamaguchi):https://github.com/kyamagu/mexopencv . 该库可以轻松地在OpenCV数据类型和mxArray之间进行转换 . 这是一个例子:
从MATLAB R2015a开始,使用ipcam功能变得非常简单:
第一次调用该函数时,MATLAB可能会提示您下载它 . 好消息是解决方案甚至不需要相机采集工具箱的许可证 .