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
一定要记得:

--       avcodec:                   YES 
--       avformat:                  YES 
--       avutil:                    YES 
--       swscale:                   YES 

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

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

mkdir build
cd build

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

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告: 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,OpenCV,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习OpenCV4的图像处理原理和编程知识,并动手操练58案例代码。具体内容包括: 一、小白入门与初体验:禁果尝鲜二、图像基本操作:懵懵懂懂学图像三、图像统计操作:七七八八有收获四、图像卷积:不入虎穴焉得虎子五、磨皮美颜:柳暗花明又一村六、二值图像:阴阳合一法自然七、图像形态学:登高望远天地阔 音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢? 因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。 梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。     

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值