我可以在没有gstreamer的Mac上编译OpenCV。
问题是,gstreamer似乎没有被cmake
拾取,即使我通过Macports安装了以下库:
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 apex IP摄像机,它通过HTTP提供视频馈送。有了Gstreamer,我可以在Ubuntu 12.10服务器版上构建——IP摄像机也可以工作——但我更希望能够在我的Mac上有一个GUI会话。
感谢@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
和gstreamer
以及所有依赖项,并重新编译了make -j8
。sudo make install
。
现在我有IP摄像机流到我的Mac使用OpenCV!
Edit:对于上下文,这是OpenCV 2.4.3-rc和Mac OS X 10.8。