redhat 5.4安装配置opencv

耗尽温柔 提交于 2020-01-18 09:28:24


本文先开始参考: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 . 命令时候,拖上去看看是否如下图信息,这是我最终安装可以读取视频的界面,两个图片好像差不多,仅做参考:
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!