• 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 */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    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 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

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

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

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

    --       avcodec:                   YES 
    --       avformat:                  YES 
    --       avutil:                    YES 
    --       swscale:                   YES 
    
    • 1
    • 2
    • 3
    • 4

    这四个库缺一不可,所以一定要记得enable-swcale,不然还是会出错

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

    mkdir build
    cd build
    
    
    • 1
    • 2
    • 3

    然后执行上面的脚本,就会发现:
    在这里插入图片描述
    说明对了,然后make,make install

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

  • 相关阅读:
    unity操作_Camera c#
    分组函数之rollup、cube函数、grouping sets函数
    A-level化学例题分析(二)
    pycharm pro v2023.2.4(Python开发)
    思科确认 Yanluowang 勒索软件泄露被盗公司数据
    rr来debug你的C/C++程序(Linux)
    (pytorch进阶之路)交叉熵、信息熵、二分类交叉熵、负对数似然、KL散度、余弦相似度
    java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
    Python二级 每周练习题18
    提升服务器性能相关
  • 原文地址:https://blog.csdn.net/weixin_43360707/article/details/127557777