0

我可以在没有 gstreamer 的情况下在我的 Mac 上编译 OpenCV。

cmake问题是,即使我通过 Macports 安装了以下库,gstreamer 似乎也没有被选中:

    ffmpeg-devel                   @20121205       multimedia/ffmpeg-devel
    ...
    gst-ffmpeg                     @0.10.13        gnome/gst-ffmpeg
    gst-plugins-bad                @0.10.23        gnome/gst-plugins-bad
    gst-plugins-base               @0.10.36        gnome/gst-plugins-base
    gst-plugins-gl                 @0.10.3         gnome/gst-plugins-gl
    gst-plugins-good               @0.10.31        gnome/gst-plugins-good
    gst-plugins-math               @0.1.0          science/gst-plugins-math
    gstreamer                      @0.10.36        gnome/gstreamer

我的 cmake 生成日志如下所示(大部分省略):

    --   Video I/O:
    --     DC1394 1.x:                  NO
    --     DC1394 2.x:                  YES (ver 2.1.3)
    --     FFMPEG:                      YES
    --       codec:                     YES (ver Unknown)
    --       format:                    YES (ver Unknown)
    --       util:                      YES (ver Unknown)
    --       swscale:                   YES (ver Unknown)
    --       gentoo-style:              YES
    --     OpenNI:                      NO
    --     OpenNI PrimeSensor Modules:  NO
    --     PvAPI:                       NO
    --     GigEVisionSDK:               NO
    --     QuickTime:                   NO
    --     QTKit:                       YES

如您所见,gstreamer生成的日志中不存在。

我正在尝试将 OpenCV 用于 Apexis IP 摄像机,该摄像机通过 HTTP 提供视频源。使用 Gstreamer,我可以在 Ubuntu 12.10 服务器版上构建——并且 IP 摄像机可以工作——但我希望能够在我的 Mac 上进行 GUI 会话。

欢迎任何见解。

4

1 回答 1

0

感谢@yiding,我发现了这个问题。

出于某种原因,OpenCV 将 Mac 上的 gstreamer 列入黑名单。我可以通过简单地更改 cmake 配置 ( CMakeLists.txt) 将其取消黑名单。

改变

OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )

OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT ANDROID) )

然后,我重新安装了所有依赖项,并ffmpeg使用. . 就是这样。gstreamermake -j8sudo make install

现在我可以使用 OpenCV 将 IP 摄像机流式传输到我的 Mac!

编辑:对于上下文,这是 OpenCV 2.4.3-rc 和 Mac OS X 10.8。

于 2013-01-16T05:34:32.050 回答