gpt4 book ai didi

MATLAB - 捕获视频流(MJPEG、rtsp、mpeg)

转载 作者:太空宇宙 更新时间:2023-11-03 19:15:40 24 4
gpt4 key购买 nike

有人在 MATLAB 中使用过从 IP 摄像机捕获视频流吗?例如,在 MATLAB 中从 rtsp://10.10.10.10:554/live.sdp(rtsp 流)或 http://x.x.x.x/axis-cgi/mjpg/video.cgi 抓取帧(mjpeg 流)。 MATLAB 的图像采集工具箱目前不支持这一点。我找到了 2 个选项:1) 使用 mmread .但是 64 位 MATLAB 下不支持 http 流读取或2) 编写我自己的抓取帧的 C++ 函数(我使用 OpenCV 库),然后将其编译成 MATLAB MEX 函数。任何建议表示赞赏。

最佳答案

这是我从 MATLAB 支持部门得到的答案:

Unfortunately, you are correct that currently the Image Acquisition Toolbox does not support IP cameras. Regarding workarounds: 1. If mmread works for you, perhaps it is feasible for you to install a 32-bit MATLAB on your 64-bit machine. 2. Writing your own MEX driver should be a possible option. 3. IMREAD is able to obtain frames from IP cameras. It may be possible to utilize this capability and build a function that constructs the video stream. Although frame rate may be an issue.

我建议实现您自己的 Matlab mex 函数来抓取视频帧。以下是一些建议:

  1. OpenCV 库用于从网络摄像机捕获视频流,参见 OpenCV with Network Cameras .每个网络摄像机可能有不同的 API 来访问视频流(即 URL 地址)。例如,http://10.10.10.10/axis-cgi/mjpg/video.cgi?resolution=800x600&.mjpg
  2. 下面是 OpenCV 库的 matlab mex 函数收集和开发工具包的链接(感谢 Kota Yamaguchi):https://github.com/kyamagu/mexopencv .这个库使得 OpenCV 数据类型和 mxArray 之间的转换变得容易。这是一个例子:

    #include "mexopencv.hpp"
    void mexFunction( int nlhs, mxArray *plhs[],
    int nrhs, const mxArray *prhs[] )
    {
    // Check arguments
    if (nlhs!=1 || nrhs!=1)
    mexErrMsgIdAndTxt("myfunc:invalidArgs", "Wrong number of arguments");

    // Convert MxArray to cv::Mat
    cv::Mat mat = MxArray(prhs[0]).toMat();

    // Do whatever you want

    // Convert cv::Mat back to mxArray*
    plhs[0] = MxArray(mat);
    }
  3. 可以使用线程使应用程序异步,其中生产者线程从相机抓取帧并将其放入循环缓冲区。另一方面,消费者线程从缓冲区中检索帧并将它们转换为 mxArray(矩阵)输出。参见 How to implement a circular buffer of cv::Mat objects (OpenCV)? .循环缓冲区将需要成为线程安全的,请参阅 Thread safe implementation of circular buffer .

关于MATLAB - 捕获视频流(MJPEG、rtsp、mpeg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com