CentOS5.2下OpenCV+FFMPEG+Video Support配置安装
OpenCV关于windows配置开发环境的文章很多,关于linux的却很少;在阅读Learning OpenCV这本OReilly新书的时候,我是用的Linux环境(一是版权问题,二是linux可以申请non-commercial的intel IPP,三是有可能需要移植嵌入式系统),发现要是根据Learning OpenCV这本书的设置,开发环境根本配置不起来...摸索了一个下午,终于配置好了...
系统是CentOS5.2,开发用自然是稳定第一,安装了gcc\gdb\python的一系列软件,opencv是用c\c++\python混合编写的,一些常用的开发软件还是需要的...用的ffmpeg是通过CVS下载的最新版本,OpenCV是1.1.0pre版本..
上次安装了ffmpeg和opencv以后,在使用Learning OpenCV这本书的软件的时候,发现里面关于图像的例子都可以使用,但是涉及到视频的例子都无法正常运行...
于是搞了半天,google+baidu+reading the fucking souce code,终于搞定了...记录如下:
首先如果通过repositories安装了ffmpeg和opencv的话,先yum remove掉,相关的dependence也一样...
1 通过cvs下载ffmpeg(这个东东还是最新版本的好,第一次下了一个0.4.9pre的版本,死活搞不定...),或者到ffmpeg主页下载最新的打包版本
2 解压,进入文件夹以后,首先 ./confiuge --enable shared --enable-swscale --enable-gpl
这个意思是要生成动态链接库;然后opencv会使用到libswscale,所以要在编译的时候把swscale这个库也编译出来;而libswscale是遵守gpl的,不enable gpl的话就无法编译...
3 make
4 make install
5 这样就编译安装好了ffmpeg,然后到 /usr/local/include 下面查看,不出意外的话就会有libavcodec|libavdevice|libavformat|libavutil|libswscal这几个目录,这些目录下是图像视频的头文件包含所在。然后在这个目录下新建一个ffmpeg目录,把上面提到的这些文件夹下面的所有文件都复制(或者符号链接)到 ffmpeg目录下面。这么做是因为opencv编译的时候会去寻找ffmpeg/avcodec.h和ffmpeg/swscale.h等一些文件,ffmpeg以前的做法是把所有的头文件都放在ffmepg目录下面,但是现在新的版本已经改成放置到不同目录下,(如果不做这一步的话,在configure配置opencv的时候就会提示没有找到ffmpeg,同时编译opencv的时候需要更改 opencv下的一个cpp文件(忘了名字了,编译的时候出来的),那里面是ffmepg/avcodec.h ffmpeg/avformat.h ffmpeg/swscale.h,然后分别改正到正确的头文件所在就可以了)。
cd /usr/local/lib
mkdir ffmpeg
cp libavcodec/* ffmpeg
cp libavdevice/* ffmpeg
cp libavformat/* ffmpeg
cp libavutil/* ffmpeg
cp libswscale/* ffmpeg
6 从sourceforge上下载的opencv1.1.0解压,然后修改configure文件,找到FFMPEGLIBS="-lavcodec -lavformat"这一句,修改成FFMPEGLIBS="-lavcodec -lavformat -lswscale"
7./configure --enable-shared
PS:这里忘了说明,如果ffmpeg安装正确的话,在configure结束结尾有这样的信息出现:
------------------------------------------------------------------------------------------------------
Video I/O ---------------------
Use QuickTime / Mac OS X: no
Use xine: no
Use gstreamer: no
Use ffmpeg: yes
Use dc1394 & raw1394: no
Use v4l: yes
Use v4l2: yes
Use unicap: no
------------------------------------------------------------------------------------------------------
如果use ffmpeg这项是no的话,就要重新检查ffmpeg的安装配置了...
8 make
9 make install
10 在/etc/ld.so.conf中加入/usr/local/lib这一行,然后ldconfig
最后把LearningOpenCV_Code.zip(Learning OpenCV的代码,从OReilly网站可以下载)解压开来,g++ -L/usr/local/lib -I/usr/local/include/opencv -lhighgui ch2_ex2_2.cpp -o ch2_ex2_2
编译通过以后,尝试运行./ch2_ex2_2 test.avi,如果能正常出现视频就说明安装成功了!!!
阅读(1591) | 评论(0) | 转发(0) |