Opencv3.4版本+ffmpeg联合编译

Opencv3.4对于ffmpeg支持的版本比较低,我这里选用ffmpeg4.5(./configure --prefix=/usr --enable-shared --enable-swcale)
本次编译中在opencv非常重要的两个cmake变量

  • HAVE_FFMPEG
  • WITH_FFMPEG

其中HAVE_FFMPEG这个变量会在头文件cvconfig.h中定义(Cmakel自动生成):

#define HAVE_DC1394_2

/* DirectX */
/* #undef HAVE_DIRECTX */
/* #undef HAVE_DIRECTX_NV12 */
/* #undef HAVE_D3D11 */
/* #undef HAVE_D3D10 */
/* #undef HAVE_D3D9 */

/* DirectShow Video Capture library */
/* #undef HAVE_DSHOW */

/* Eigen Matrix & Linear Algebra Library */
/* #undef HAVE_EIGEN */

/* FFMpeg video library */
#define HAVE_FFMPEG

/* Geospatial Data Abstraction Library */
/* #undef HAVE_GDAL */

Opencv编译脚本:

cmake .. \
    -D CMAKE_BUILD_TYPE=Debug \
    -D CMAKE_INSTALL_PREFIX="/workspace/depends/opencv3.4-ffmpeg" \
    -D CMAKE_CXX_FLAGS=" -O0 -Wall -g -fpermissive" \
    -D CMAKE_C_FLAGS=" -O0 -Wall -g -fpermissive" \
    -D BUILD_TESTS=OFF \
    -D BUILD_PERF_TESTS=OFF \
    -D WITH_CUDA=OFF \
    -D WITH_VTK=OFF \
    -D WITH_MATLAB=OFF \
    -D BUILD_DOCS=OFF \
    -D BUILD_opencv_python3=ON \
    -D BUILD_opencv_python2=ON \
    -D WITH_IPP=OFF \
    -D BUILD_SHARED_LIBS=ON \
    -D BUILD_opencv_apps=ON \
    -D WITH_CUDA=OFF \
    -D WITH_OPENCL=OFF \
    -D WITH_VTK=OFF \
    -D WITH_MATLAB=OFF \
    -D BUILD_DOCS=ON \
    -D BUILD_JAVA=OFF \
    -D BUILD_FAT_JAVA_LIB=OFF \
    -D WITH_PROTOBUF=OFF \
    -D WITH_QUIRC=OFF \
    -D WITH_FFMPEG=ON 

保证编译正确的关键步骤是ffmpeg的安装路径,或许有人说,我能不能指定自己的安装路径,比如pkg-config模式,我想说的是,不要浪费时间,我帮你踩过坑了,不行,ffmpeg编译的时候一定要按照下述命令:

./configure --prefix=/usr  --enable-shared --enable-swcale

上面的–prefix=/usr一定要设置为这个路径,make,make install

ffmpeg安装好之后,就可以编译opencv了,在opencv文件夹下:

mkdir build
cd build

然后执行上面的脚本,就会发现:
Opencv3.4版本+ffmpeg联合编译_第1张图片
说明对了,然后make,make install

安装好了以后,可以把原来的ffmpeg删除了就可以了

你可能感兴趣的:(笔记,ffmpeg)