2017-02-05 92 views
-1

我跑到下面的命令来编译OpenCV的:为什么OpenCV不支持ffmpeg编译?

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/Users/user/work/repo/venv/local/ -D INSTALL_C_EXAMPLES=OFF -D PYTHON_PACKAGES_PATH=/Users/user/work/repo/venv/lib/python2.7/site-packages -D INSTALL_PYTHON_EXAMPLES=ON -D PYTHON_EXECUTABLE=/Users/user/work/repo/venv/bin/python -D WITH_CUDA=OFF -D FFMPEG_INCLUDE_DIR=/usr/include/ffmpeg -D FFMPEG_LIB_DIR=/usr/lib64 -D WITH_FFMPEG=YES .. 

这就造成:

-- Video I/O: 
--  DC1394 1.x:     NO 
--  DC1394 2.x:     NO 
--  FFMPEG:      NO 
--  avcodec:     YES (ver 57.75.100) 
--  avformat:     YES (ver 57.63.100) 
--  avutil:     YES (ver 55.45.100) 
--  swscale:     YES (ver 4.3.101) 
--  avresample:    NO 

那么任何的Python调用使用的ffmpeg作为捕获源将失败的OpenCV。

我虽然我有正确的路径设置,因为调用ffmpeg的命令行返回:

$ ffmpeg 
ffmpeg version n3.0.5-19-ga71d22d-rpmfusion Copyright (c) 2000-2016 the FFmpeg developers 
    built with Apple LLVM version 8.0.0 (clang-800.0.42.1) 
    configuration: --prefix=/usr --bindir=/usr/local/bin/ --shlibdir=/usr/lib64 --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --extra-cflags='-O2 -g' --extra-version=rpmfusion --enable-bzlib --enable-nonfree --enable-libopenjpeg --enable-libx264 --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --enable-runtime-cpudetect --arch=x86_64 

在那些显示目录中查找的确给我的cmakeoutput列编解码器列表。

我在OSX Sierra上,并且手动编译opencv和ffmpeg。

我可以运行ffmpeg命令行罚款转换任何视频文件,我需要。我也可以启动Python shell并使用opencv导入并打开视频,只要我使用默认捕获源而不是cv2.CAP_FFMPEG。这意味着我现在只能打开mp4文件。

+0

编译您可能需要至少头文件的ffmpeg或源代码'* .h' - 也许还有'的ffmpeg-dev'包只有.h文件。 – furas

回答

0

我只好跟着这个教程,编译的OpenCV与Python的virtualenv路径导致错误一些OBSCUR原因。

我在没有设置virtualenv python路径的情况下安装了opencv,然后将cv2.so文件复制到virtualenv python路径,并且所有工作都神奇。

我无法解释为什么,但现在我可以在任何支持的格式下阅读没有扩展名的视频。

http://www.pyimagesearch.com/2016/11/28/macos-install-opencv-3-and-python-2-7/

0

尝试Homebrew

brew install opencv3 --with-ffmpeg 

根据您的需求可能会增加选项--with-python3和/或--with-contrib

要列出所有可用的选项运行

brew info opencv3 
+0

brew安装opencv3导致没有pkgconfig错误或类似的东西,不记得确切的错误,即使使用brew重新安装pkg-config,我也无法使它工作。 – kollo