redhat 5.4安装配置opencv
本文先开始参考:https://blog.csdn.net/weixin_30877227/article/details/95127120
进行安装配置,但是最后在运行opencv的时候,视频文件一直无法读取,为了解决这个问题花了很多时间来找原因,废话不多说,上干货。
相关软件下载
操作系统:
Red Hat Enterprise Linux Server 5.4 64位
相关软件:
ffmpeg-0.8.15.tar.bz2、cmake-3.5.1.tar.gz、OpenCV-2.3.1a.tar.bz2、
我整理好的所有软件下载地址:
https://download.csdn.net/download/weixin_42727069/12079504
也可以在软件官方下载地址:
yasm:(这个软件是ffmpeg的依赖,如果ffmpeg可以正常安装,则不用安装该软件)
http://yasm.tortall.net/Download.html
FFmpeg:
https://ffmpeg.org/releases/ffmpeg-0.8.15.tar.bz2
CMake:
https://cmake.org/files/v3.5/cmake-3.5.1.tar.gz
OpenCV:
http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2
软件安装步骤
说明:第一次安装为避免配置中遇到错误yasm/nasm not found or too old.
建议先把yasm安装一遍。
默认的我是用root账户进行安装的
1、yasm安装步骤:
命令如下:
tar xvf yasm-1.3.0.tar.gz #解压软件
cd yasm-1.3.0 #进入解压软件目录
./configure --prefix=/usr #生成Makefile,安装位置/usr
make
make install
2、FFmpeg安装
说明:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。为OpenCV编译视频相关库提供支持。注意FFmpeg需要与OpenCV匹配。OpenCV-2.3.1版本及其以前的版本需要使用ffmpeg-0.7.x版本及其以前版本进行编译。
命令如下:
tar xvf ffmpeg-0.8.15.tar.bz2 #解压软件
cd ffmpeg-0.8.15`` #进入软件安装目录
./configure --enable-shared --prefix=/usr #生成Makefile,安装位置/usr(注意这里的安装位置,也可以安装在/usr/ffmpeg单独目录,需要改 --prefix=/usr/ffmpeg ,该问题是直接导致无法读取视频的根本原因之一,在后面的问题分析里会教大家安装在/usr/ffmpeg下,并且进行配置)
make #通过Makefile编译源代码
make install #文件安装在/usr/路径下
ffmpeg #执行ffmpeg命令显示ffmpeg版本号和帮助信息表示安装成功,(注意:不代表可以显示版本号和帮助信息就表示读取视频没有问题,这只代表ffmpeg安装成功了,但是如果在后续的opencv安装中无法识别它,是导致视频读不进去的主要原因)
需要注意的问题:
按照上面步骤安装完,有可能在最后一步输入ffmpeg的时候无法显示安装成功信息,这时候需要按照如下步骤进行检查
1、检查.bash_profile文件中有没有ffmpeg的程序执行目录
vi ~/.bash_profile #查看有没有/bin /sbin /usr/bin /usr/sbin 四个目录
#如果进行添加了目录后需要执行:
source ~/.bash_profile #更新,生效
重点检查$PATH 下有没有这四个目录文件,如果安装在/usr/ffmpeg下面,则需要将/usr/ffmpeg添加进去后,执行以下source命令进行更新
2、检查/etc/ld.so.conf.d/ffmpeg.conf 文件
如果该目录下没有改文件,则需要新建一个,里面内容填写ffmpeg安装的库目录位置
命令:
vi /etc/ld.so.conf.d/ffmpeg.conf #打开ffmpeg.conf文件,检查里面是否有ffmpeg的库目录
#检查里面内容是否有下面这目录,如果没有则需要添加进去。
/usr/lib #程序直接安装在/usr 目录下
/usr/ffmpeg/lib #如果程序安装在/usr/ffmpeg 目录下
#保存退出后执行 ldconfig命令进行生效
ldconfig
3、检查/etc/bash.bashrc 文件
命令:
vi /etc/bash.bashrc #打开bash.bashrc 文件
#查看有没有配置ffmpeg的库目录,没有则需要添加lib (我的ffmpeg 是安装在/usr/ffmpeg下面的,所以代码如下,根据实际情况修改路径地址)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/ffmpeg/lib/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/ffmpeg/lib/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/ffmpeg/lib/
#编辑保存退出后执行source生效配置
source /etc/bash.bashrc
4、检查/etc/profile文件
命令:
vi /etc/profile #打开,查看下面有没有下面的配置,如果没有则需要添加进去,(提醒:注意自己安装的路径问题,根据实际的配上去)
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/ffmpeg/pkgconfig
export FFMPEG_HOME=/usr/ffmpeg
export PATH=$PATH:$FFMPEG_HOME
保存退出后执行source 命令生效配置
source /etc/profile
3、cmake安装步骤:
说明:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。用它来产生OpenCV编译时用到的Makefile文件。
安装命令:
tar xvf cmake-3.5.1.tar.gz #解压软件包
cd cmake-3.5.1 #进入安装目录
./configure --prefix=/usr #生成Makefile,安装位置/usr (这个路径不建议更改)
make #通过Makefile编译源代码
make install #文件安装在/usr/路径下
cmake #测试是否安装成功,执行cmake命令显示cmake版本号和帮助信息表示安装成功
4、OpenCV安装
说明:OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库。编译和运行调用OpenCV库函数的程序时需要用到OpenCV库和头文件。
安装命令步骤:
tar xvf OpenCV-2.3.1a.tar.bz2 #解压安装软件
cd OpenCV-2.3.1 #进入软件安装目录
cmake -DWITH_FFMPEG=ON -DCMAKE_INSTALL_PREFIX=/usr //生成Makefile,支持播放视频,安装位置/usr (这里的安装配置和ffmpeg类似,也可以将安装位置安装在单独的目录,/usr/opencv2.3里面,只需要改-DCMAKE_INSTALL_PREFIX=/usr/opencv2.3,如果这么安装了也要注意一系列的配置问题,在后面会说明)
cmake . #cmake编译一下,注意cmake 后面有一个点,表示该操作在当前目录
make #通过Makefile编译源代码
make install #文件安装在/usr/路径下,安装完成了,注意下面opencv的配置问题
需要注意的问题:
1、检查/etc/ld.so.conf.d/opencv.conf 文件
说明:如果该文件名有大写的字母,建议改成小写,别问为什么,我也不知道有没有用,反正小写的是配置成功了
命令:
vi /etc/ld.so.conf.d/opencv.conf #查看配置文件
#看看有没有opencv安装目录的库路径和pkgconfig路径(pkgconfig 在库目录下一层,我这是把opencv直接安装在/usr下面,没有单独形成文件夹)
#如果没有则将下面的复制添加进去
/usr/lib
/usr/lib/pkgconfig
#保存退出后执行ldconfig更新安装
ldconfig
以上配置完了应该OK了,由于我以前一直提示opencv pkgconfig什么问题,所以在~/.bashrc里添加了一行下面代码,表示每次打开shell都执行一下这一句,没有出现这个问题可以忽略这个更改。
最后的忠告:
按照这个步骤装一遍不一定就能读取视频成功,这时候不要着急,有可能是在安装opencv的时候并没有识别到你前面的ffmpeg安装成功,所以opencv的视频模块没有安装成功,按照我的步骤重新再安一遍ffmpeg,然后把所有的配置都搞清楚了,再安装一遍opencv 就应该可以解决这个问题。可以试着把它们都安装在/usr 下面单独的目录。
在安装opencv 执行完cmake -DWITH_FFMPEG=ON -DCMAKE_INSTALL_PREFIX=/usr 的时候,拖上去看看是否如下图所示
执行完cmke . 命令时候,拖上去看看是否如下图信息,这是我最终安装可以读取视频的界面,两个图片好像差不多,仅做参考:
来源:CSDN
作者:鸿儒517
链接:https://blog.csdn.net/weixin_42727069/article/details/103830577