Ubuntu14.04下OpenCV2.4.9+FFmpeg1.2.12安装配置及问题解决方案
2016-10-17 09:43
495 查看
在视频处理过程中用到时空兴趣点[1](Space-Time Interest Points,STIP)和改进的密集轨迹[2](Improved Dense Trajectories,IDT)这两种特征提取方法,两者都是应用十分普遍的算法。我们可以在作者主页上找到公开的算法源码,它们在Linux下需要OpenCV和FFmpeg的支持方可顺利运行。之前已经用过这两种工具,现在换了工作环境后想要再用,但是配置和安装过程中依旧出现不少问题。因此在搞定之后觉得很有必要将具体过程和遇到的问题及解决方案记录下来以备后用,也希望能够给其他人带来一点点帮助。
OpenCV2.4.9下载
官网给出了从早期1.0.0到3.1和2.4.13版本的下载链接,对应着不同操作系统有不同的软件包。
http://opencv.org/downloads.html
我采用的2.4.9版本下载地址如下:
https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
FFmpeg1.2.12下载
FFmpeg最新已经到了3.1.4版本,更新速度还是比较快的。个人选择早期的1.2.12版本已经能够满足实际需求,下载地址如下:
https://ffmpeg.org/olddownload.html
1.卸载之前安装的FFmpeg和x264软件
为了防止出现版本问题等,建议先卸载之前(可能)安装的相关版本。命令如下:
2.安装依赖项及相关软件
3.编译安装
解压下载的FFmpeg包,进入解压的目录
环境配置[4]
注意复制的过程中可能会有回车或字符问题,如果提示命令有问题,需要仔细检查空格及回车。上面使用prefix指定了软件的安装路径,则需要在配置文件中修改相应的路径,让系统能够找到FFmpeg的安装路径:
按insert键,在该文件的末尾加上如下两行:
按Esc键输入“:wq”即可退出并保存,再令上面的修改生效,命令如下:
一切配置完成后,准备安装,命令如下:
安装之后在/usr/local/ffmpeg会看到有三个目录:bin 执行文件目录,lib 静态、动态链接库目录,include 编程用到的头文件。
4.检查安装配置是否正确
网上有说通过执行bin目录下的ffplay播放视频文件来测试是否安装成功。但是我编译安装之后并没有生成ffplay,bin目录下只有ffmpeg和ffserver。因此这里采用直接检查版本是否正确,之后使用时也没有出现问题。命令如下:
此时出现正确的版本及配置信息,说明安装成功。
1.安装依赖项
2.编译安装
解压下载的OpenCV包,进入解压的目录
创建编译目录,编译安装
这里编译时间较长,完成后会在最后一行打印如下提示信息:
在编译过程中,可能会在Configuring done这一行停留时间很久,不要因为着急终止编译,需要耐心等待编译全部完成。安装过程中会出现“[10%]”百分比形式的进度提示,过程也会很慢,请耐心等待。
提示:cmake完成后会出现相关信息,其中可以查看是否已经支持FFmpeg,支持的话FFMPEG后将出现YES,下面还有一些编码及格式同为YES。
3.环境配置
所有的库文件默认安装在 /usr/local/lib 下, 所有的头文件安装在 /usr/local/include/opcv*/下面。修改环境配置[6],命令如下:
按insert键在文件最后一行加入
按Esc键输入“:wq”即可退出并保存,再执行以下命令:
至此,OpenCV安装完成。
./bin/stipdet: error while loading shared libraries: libcxcore.so.2: cannot open shared object file: No such file or directory
看问题意思是程序执行过程中无法找到共享库文件libcxcore.so.2,不存在这个文件或路径。从网上搜索结果来看,出现这个问题多数都是准备使用STIP来获取视频特征的,密集轨迹程序则并没有这个问题。stackoverflow网站上有这个问题以及几种解决的方案,可供参考[7]。
创建软链接等方式在我这里没有成功,可能是当时没有设置正确,之后又没有root权限,最终采用了一种临时的办法。设置共享库搜索目录,命令如下:
在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,这比较常见。执行STIP出现这个问题的原因是尽管已经安装了该共享库,但是在准备调用的时候,程序无法找到该文件。
我的问题在于共享库文件安装到了其它“非/lib或/usr/lib”目录下,但是安装完成之后非root用户没有权限在“/etc/ld.so.conf”中加路径。因此export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找共享库[8]。
对于密集轨迹的程序采用同样的方式,就可以正常执行了。此外,由于export的全局变量每次关闭命令窗口之后就不再生效。因此在执行STIP程序前必须先按照上述方法设置共享库搜索目录,就不会出现libcxcore.so.2无法找到的问题。
pkg-config是编译应用程序和库文件的一个十分有用的工具,其功能之一就是检查库的版本号。
参考文献:
[1] https://www.di.ens.fr/~laptev/interestpoints.html
[2] https://lear.inrialpes.fr/people/wang/improved_trajectories
[3] https://ffmpeg.org/about.html
[4] http://blog.csdn.net/u010106759/article/details/51931815
[5] http://opencv.org/
[6] http://blog.csdn.net/firefoxbug/article/details/7554409
[7] http://stackoverflow.com/questions/5212728/libcxcore-so-2-missing-in-opencv
[8] http://blog.csdn.net/sahusoft/article/details/7388617
[9] http://blog.chinaunix.net/uid-21880738-id-1813031.html
[10] http://blog.csdn.net/ppp2006/article/details/47445903
OpenCV2.4.9及FFmpeg1.2.12源码包下载
这两个软件在官网都可以直接找到各种版本的源码包,下载之后编译安装。如果不是特别需要最新版本的软件,个人建议采用那些已被多数人使用过的偏早期版本,出现问题时也能够较为方便地找到对应的解决方案。我选用的分别是OpenCV2.4.9和FFmpeg1.2.12这两个版本。OpenCV2.4.9下载
官网给出了从早期1.0.0到3.1和2.4.13版本的下载链接,对应着不同操作系统有不同的软件包。
http://opencv.org/downloads.html
我采用的2.4.9版本下载地址如下:
https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
FFmpeg1.2.12下载
FFmpeg最新已经到了3.1.4版本,更新速度还是比较快的。个人选择早期的1.2.12版本已经能够满足实际需求,下载地址如下:
https://ffmpeg.org/olddownload.html
FFmpeg编译配置
FFmpeg是一个领先的多媒体框架,可以用来记录、转换数字音频、视频,并能将其转化为流的开源程序,它包括了目前领先的音/视频编码库libavcodec、libavutil、libavformat等[3]。1.卸载之前安装的FFmpeg和x264软件
为了防止出现版本问题等,建议先卸载之前(可能)安装的相关版本。命令如下:
sudo apt-get -qq remove ffmpeg x264 libx264-dev
2.安装依赖项及相关软件
sudo apt-get install yasm sudo aptitude install libx264-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libxext-dev libxfixes-dev
3.编译安装
解压下载的FFmpeg包,进入解压的目录
cd ffmpeg-1.2.12
环境配置[4]
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis --enable-nonfree --enable-pic --enable-shared
注意复制的过程中可能会有回车或字符问题,如果提示命令有问题,需要仔细检查空格及回车。上面使用prefix指定了软件的安装路径,则需要在配置文件中修改相应的路径,让系统能够找到FFmpeg的安装路径:
vi /etc/profile
按insert键,在该文件的末尾加上如下两行:
export FFMPEG_HOME=/usr/local/ffmpeg export PATH=$FFMPEG_HOME/bin:$PATH
按Esc键输入“:wq”即可退出并保存,再令上面的修改生效,命令如下:
source profile
一切配置完成后,准备安装,命令如下:
make make install
安装之后在/usr/local/ffmpeg会看到有三个目录:bin 执行文件目录,lib 静态、动态链接库目录,include 编程用到的头文件。
4.检查安装配置是否正确
网上有说通过执行bin目录下的ffplay播放视频文件来测试是否安装成功。但是我编译安装之后并没有生成ffplay,bin目录下只有ffmpeg和ffserver。因此这里采用直接检查版本是否正确,之后使用时也没有出现问题。命令如下:
ffmpeg -version
此时出现正确的版本及配置信息,说明安装成功。
OpenCV编译安装
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法[5]。1.安装依赖项
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils
2.编译安装
解压下载的OpenCV包,进入解压的目录
cd opencv-2.4.9
创建编译目录,编译安装
mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make sudo make install
这里编译时间较长,完成后会在最后一行打印如下提示信息:
-- Configuring done -- Generating done -- Build files have been written to: /opt/opencv-2.4.9
在编译过程中,可能会在Configuring done这一行停留时间很久,不要因为着急终止编译,需要耐心等待编译全部完成。安装过程中会出现“[10%]”百分比形式的进度提示,过程也会很慢,请耐心等待。
提示:cmake完成后会出现相关信息,其中可以查看是否已经支持FFmpeg,支持的话FFMPEG后将出现YES,下面还有一些编码及格式同为YES。
3.环境配置
所有的库文件默认安装在 /usr/local/lib 下, 所有的头文件安装在 /usr/local/include/opcv*/下面。修改环境配置[6],命令如下:
vim /etc/ld.so.conf
按insert键在文件最后一行加入
/usr/local/lib
按Esc键输入“:wq”即可退出并保存,再执行以下命令:
ldconfig
至此,OpenCV安装完成。
libcxcore.so.2无法找到问题解决方案
OpenCV安装完成后,测试IDT算法可以正常运行,但是执行STIP程序时出现如下错误:./bin/stipdet: error while loading shared libraries: libcxcore.so.2: cannot open shared object file: No such file or directory
看问题意思是程序执行过程中无法找到共享库文件libcxcore.so.2,不存在这个文件或路径。从网上搜索结果来看,出现这个问题多数都是准备使用STIP来获取视频特征的,密集轨迹程序则并没有这个问题。stackoverflow网站上有这个问题以及几种解决的方案,可供参考[7]。
创建软链接等方式在我这里没有成功,可能是当时没有设置正确,之后又没有root权限,最终采用了一种临时的办法。设置共享库搜索目录,命令如下:
export LD_LIBRARY_PATH=[enter your path]/opencv-2.4.9/release/lib
在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,这比较常见。执行STIP出现这个问题的原因是尽管已经安装了该共享库,但是在准备调用的时候,程序无法找到该文件。
我的问题在于共享库文件安装到了其它“非/lib或/usr/lib”目录下,但是安装完成之后非root用户没有权限在“/etc/ld.so.conf”中加路径。因此export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找共享库[8]。
执行STIP程序
在该目录下直接执行“./bin/stipdet –help”会无法执行,必须将stipdet和stipshow这两个文件变成可执行文件。为了方便我就直接将其改成完全公开可执行的权限[9]。命令如下:chmod 777 bin/stipdet chmod 777 bin/stipshow
对于密集轨迹的程序采用同样的方式,就可以正常执行了。此外,由于export的全局变量每次关闭命令窗口之后就不再生效。因此在执行STIP程序前必须先按照上述方法设置共享库搜索目录,就不会出现libcxcore.so.2无法找到的问题。
OpenCV版本查看
在使用过程中可能会需要查看安装的OpenCV版本,可以采用如下命令[10]:pkg-config --modversion opencv
pkg-config是编译应用程序和库文件的一个十分有用的工具,其功能之一就是检查库的版本号。
Python调用OpenCV模块
如果需要用Python来调用OpenCV模块,可以先安装Python再载入cv即可[4]。命令如下:sudo apt-get install python-opencv sudo apt-get install python-numpy python import cv
参考文献:
[1] https://www.di.ens.fr/~laptev/interestpoints.html
[2] https://lear.inrialpes.fr/people/wang/improved_trajectories
[3] https://ffmpeg.org/about.html
[4] http://blog.csdn.net/u010106759/article/details/51931815
[5] http://opencv.org/
[6] http://blog.csdn.net/firefoxbug/article/details/7554409
[7] http://stackoverflow.com/questions/5212728/libcxcore-so-2-missing-in-opencv
[8] http://blog.csdn.net/sahusoft/article/details/7388617
[9] http://blog.chinaunix.net/uid-21880738-id-1813031.html
[10] http://blog.csdn.net/ppp2006/article/details/47445903
相关文章推荐
- Ubuntu14.04下Opencv2.4.9的安装及配置使用
- Ubuntu 14.04下成功安装ffmpeg与编译配置opencv-2.4.10
- ubuntu14.04安装配置FFmpeg+opencv-3.1.0+python 调用opencv模块
- opencv2.4.9在Ubuntu下的配置与安装
- ubuntu14.04+nvidia1070+CUDA8.0+CUDNN5.0+opencv2.4.9安装配置
- Opencv 2.4.9在Ubuntu下的配置与安装
- ubuntu14.04安装opencv2.4.9以及遇到的问题
- 【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置
- Ubuntu14.04+opencv2.4.9+codeblocks13.12(或codeblocks16.01)安装使用及配置
- Ubuntu 安装openCV2.4.9 和cuda时 错误及对应解决方案
- Ubuntu下安装配置Opencv2.4.9
- opencv 2.4.9 在ubuntu 下的配置安装
- OpenCV 2.4.9在Ubuntu下的配置与安装
- Opencv 2.4.9在Ubuntu下的配置安装
- Opencv 2.4.9在Ubuntu下的配置安装
- opencv-3.0.0在Ubuntu14.04下的配置与安装
- 64位Ubuntu系统安装OpenCV 2.4.x+ffmpeg 完美解决方案
- win8系统安装vs2010配置opencv2.4.9以及模块计算机类型“x64”与目标计算机类型“X86”冲突问题解决
- [计算机视觉][ARM-Linux开发] Ubuntu14.04安装OpenCV3.2中遇到的问题的解决方案
- 64位Ubuntu系统安装OpenCV 2.4.x+ffmpeg 完美解决方案