博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FFmpeg 4.0解决configure --enable-libopencv的opencv3.4.1编译
阅读量:7217 次
发布时间:2019-06-29

本文共 1605 字,大约阅读时间需要 5 分钟。

hot3.png

1.由于opencv3.4.1编译成pkgconfig文件opencv.pc后,opencv.pc默认安装在 /usr/local/lib64/pkgconfig/opencv.pc下 ,可以在shell编译脚本中加入:                                         

if [ ! `grep -l "/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig" /etc/profile` ]; then

    `echo export "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig" >> /etc/profile`
fi

 

opencv 3.4.1默认安装目录在/usr/local/lib64下,所以将shell编译脚本加入LD_LIBRARY_PATH变量中

if [ ! `grep -l "export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64" /etc/profile` ]; then

    `echo export "LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64" >> /etc/profile`
fi

. /etc/profile

 

2. 由于ffmpeg 4.0的configure文件中有 --enable-libopencv编译选项,其支持--enable-libopencv,但是  默认是不编译的:                                                                                                                       

--enable-libopencv       enable video filtering via libopencv [no]

opencv 3.4.1先编译成库和头文件后,ffmpeg 4.0 configure --enable-libopencv编译的话,会报:

ERROR: libopencv not found

查看ffbuild/config.log,是由于其 /usr/local/include/opencv2/core/cvdef.h 最后的地方定义c++的命名空间namespace cv, 由于其在命名空间中重新定义基础类型和c中的stdint.h一致,顾将其改为:

#ifdef __cplusplus

// Integer types portatibility

#ifdef OPENCV_STDINT_HEADER
#include OPENCV_STDINT_HEADER
#else
#if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */
namespace cv {

......

#include <stdint.h>

namespace cv {
typedef ::int8_t int8_t;
typedef ::uint8_t uint8_t;
typedef ::int16_t int16_t;
typedef ::uint16_t uint16_t;
typedef ::int32_t int32_t;
typedef ::uint32_t uint32_t;
typedef ::int64_t int64_t;
typedef ::uint64_t uint64_t;
}
#endif
#endif

#else

    #include <stdint.h>
#endif

这样再编译ffmpeg用configure  --enable-libopencv就可以编译通过。

编译完成安装后,可以用ffmpeg/ffplay查看其是否包含opencv:

210359_6yHC_2376274.png

194600_f5qA_2376274.png

红箭头标注的地方就是包含opencv了。

 

转载于:https://my.oschina.net/michaelshu/blog/1819262

你可能感兴趣的文章
django 使用mysql数据库的流程
查看>>
Android系统移植与调试之------->如何修改Android设备的默认休眠时间
查看>>
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)...
查看>>
uboot 传递的参数 mtdparts
查看>>
六种排序算法C语言版(上)
查看>>
292. Nim Game(easy)
查看>>
ERROR 1786 (HY000)
查看>>
Kubernetes 学习7 Pod控制器应用进阶2
查看>>
Python字符串相加以及字符串格式化
查看>>
11.08 轮换行值
查看>>
AIX lsof 命令
查看>>
微信小程序个人项目(node.js+koa2+koa-router+middleware+mysql+node-mysql-promise+axios)
查看>>
C#温故而知新学习系列之面向对象编程—类的数据成员(三)
查看>>
列表字典推导式
查看>>
HDOJ 1228 A+B(map水题)
查看>>
intellij IDEA 导入包的方法·
查看>>
Python之路番外:PYTHON基本数据类型和小知识点
查看>>
转:matlab+spider+weka
查看>>
步步为营 .NET 设计模式学习笔记 十五、Composite(组合模式)
查看>>
angular通过路由实现跳转 resource加载数据
查看>>