CentOS下OpenCV无法读取视频文件如何解决?
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
在CentOS下,按照教程的步骤安装OpenCV,但到最后无法读取视频文件,原因是缺少了ffmpeg。于是通过CentOS中的软件管理安装ffmqeg,但还是没有效果。然后对ffmpeg进行编译,还是没有效果。其实漏了一个关键步骤,就是将ffmpeg于OpenCV关联起来。具体如下:
1、获得ffmpeg:
通过cvs下载ffmpeg, 命令行输入: svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
2、配置ffmpeg:
进入ffmpeg目录,执行 ./configure --enable-shared --prefix=/usr (enabled-shared估计都知道意思,但是为什么要 prefix=/usr呢,这得从opencv的CMakeLists.txt和heighgui下的cvcap_ffmpeg.cpp说起了,这里涉及到的问题不要使路径问题,但是也就是这个问题,搞得我去了一个早上。cMakeLists.txt中关于检测是否有安装ffmpeg时,默认是到/usr 下去检测相应的头文件之类的是否存在的,但是ffmpeg的默认安装是安装在/usr/local下的,问题就来了,所以改一下安装路径opencv在 cmake .时就无法检测到你是否已经安装了ffmpeg);
3、make;su -c "make install";
4、接下来要做的工作就是关系到opencv能否成功将ffmpeg的相关头文件编译进来的问题了:
4.1)首先在/usr/include下执行以下命令(root):
mkdir ffmpeg;
cp libav* libsw* ffmpeg; //之所以这么做,是因为opencv configure时检查是否已安装ffmpeg是在这
检查的
4.2)cmake .; //注意,cmake 和.之间有空格, 如果以上步骤都没错的话,一概可以看到 opencv的
configure结果中ffmpeg为1,不是之前的0,说明我们成功了。
4.3)make install;
5、将/usr/local/lib/pkgconfig下的opencv.pc cp到/usr/lib/pkgconfig下,这一步也可以做,只是一个配置文件,大不了编译时自己指定头文件和库么,其实你打开opencv.pc一看就知道是什么玩意了。
6、root下, vim /etc/ld.so.conf, 增加一行, /usr/local/lib (因为opencv的库文件在local,默认情况下local/lib中的库文件是不在系统启动时被load的)
7、ldconfig。
相关文章
- 使用最小化安装CentOS后,无法使用Tab键补全命令,这里就为大家分享一下解决方法,需要的朋友可以参考下2018-05-25
- 这篇文章主要介绍了centos 强制踢掉某登录用户的方法,需要的朋友可以参考下2018-05-05
- 这篇文章主要介绍了CentOS 7.3.1611 系统安装配置图文教程,需要的朋友可以参考下2018-01-28
- CentOS7.0怎么设置屏幕分辨率?CentOS7.0中想要设置电脑的分辨率,该怎么设置呢?下面我们就来看看CentOS7.0中设置分辨率的教程,需要的朋友可以参考下2017-11-08
- centos7怎么关闭ipv6仅使用ipv4?centos7系统中使用ipv6很不方便,想要关闭,该怎么关闭呢?下面我们就来看看详细的教程,需要的朋友可以参考下2017-10-30
CentOS部署kodexplorer可道云搭建私有网盘的方法
这篇文章主要介绍了CentOS部署kodexplorer可道云搭建私有网盘的方法的相关资料,需要的朋友可以参考下2017-08-30- 最近一些朋友问小编如何进入CentOS字符界面及窗口模式?下面小编就为大家分享进入CentOS字符界面及窗口模式的方法,希望对大家会有帮助,有需要的朋友一起去看看吧2017-04-16
CentOS 6.X如何更改网卡名称?CentOS 6.X更改网卡名称的方法
最近一些朋友问小编CentOS 6.X如何更改网卡名称?今天小编为大家带来的是CentOS 6.X更改网卡名称的方法,希望对大家会有帮助,有需要的朋友一起去看看吧2017-04-10CentOS7中无法找到pci find device函数的解决方法
这篇文章介绍了CentOS7中无法找到pci_find_device函数的解决方法,希望对大家会有帮助,下面就随小编一起去看看具体的操作吧2017-04-09- CentOS是一款基于Linux的操作系统,而在CentOS操作系统中CrossOver的安装包是bin格式的,这对于部分用户来讲估计就有点蒙圈了。下面,小编就为大家介绍一下在CentOS系统中2015-11-24
最新评论