我跑到下面的命令来编译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文件。
编译您可能需要至少头文件的ffmpeg或源代码'* .h' - 也许还有'的ffmpeg-dev'包只有.h文件。 – furas