FFmpeg+OpenCV Linux下安装和配置

FFmpeg+OpenCV Linux下安装和配置

apt-get install subversion

前不久安装好了OpenCV,昨晚测试一个avi视频处理的时候,cvCreateFileCapture总是返回NULL,我怀疑是ffmpeg没有配置好。今天就把OpenCV和ffmpeg都删除了,重新安装了下!最好把旧版本都删除了!

ffmpeg安装
源码下载 : svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

文件配置 : ./configure --enable-shared --enable-gpl --enable-swscale

安装 : make && make install

所有的库文件默认安装在/usr/local/lib 下, 所有的头文件安装在 /usr/local/include/lib*/下

测试 : ffplay a.avi

pkg-config安装
$ yum install pkg-config

pkg-config 通过各个库文件的.pc 文件识别已安装的库文件的信息,这些.pc文件是由各库的安装程序自己生成的,例如ffmpeg 安装程序会在 /usr/local/lib/pkgconfig 目录下提供 libavcodec.pc libswscale.pc 等5个.pc文件,分别对应安装的五个库文件。所以必须要让pkg-config能找到ffmpeg的*.pc文件,通过PKG_CONFIG_PATH 来设置pkg-config来更新。

$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

cmake安装
$ yum install cmake

OpenCV安装
源码下载: http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/

$ cp OpenCV-2.4.0.tar.bz2 /usr/local/

$ tar -xvf OpenCV-2.4.0.tar.bz2

$ cd  OpenCV-2.4.0

2.4.0的下面是以CMakeLists.txt形式

$ cmake CMakeLists.txt

这里可以查看是否已经支持ffmpeg,查看信息,FFMPEG已经是YES了

FFmpeg+OpenCV Linux下安装和配置_第1张图片

$ make && make install

所有的库文件默认安装在 /usr/local/lib 下, 所有的头文件安装在 /usr/local/include/opcv*/下面

$ vim /etc/ld.so.conf

最后一行加入 /usr/local/lib

$ ldconfig

或者

export LD_LIBRARY_PATH=/usr/local/lib



/////////////////////////


由于给原来RHEL分配的空间太少,故而重新装了下系统。安装ffmpeg时候遇到如下的问题:

libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
make: *** [libavcodec/x86/dsputil_mmx.o] Error 1

这是个让人抓狂的问题!!!找了许久,说是代码有个bug!!!

解决方法:http://permalink.gmane.org/gmane.comp.handhelds.openembedded/51954

需要把libavcodec/x86/h264_qpel_mmx.c中的"g"替换为“rm”即可解决!!!可以采用gedit使用批量替换。使用vim,进入命令行模式,输入:%s/"g"/"rm"/g即可全部替换。

Warning:

另外在装Opencv之前最好检查安装gtk库,因为ubuntu默认是没有安装的,最后编译出来的程序可能无法正常执行。

键入如下命令检查安装:

apt-get install build-essential cmake libgtk2.0-dev


你可能感兴趣的:(FFMPEG,Ubuntu学习,Opencv)