源码下载 : 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/下
测试 : ffplay movie.avi
注意:有些电脑并不能正确编译生成ffplay或者其他程序,找到config.mak文件,去掉CONFIG_FFPLAY=yes前面的注释符号“!”后,再编译
会提示缺少SDL,SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。
我们先使用命令安装yum install sdl,这个只是安装了部分的库,还会缺少一些,需要手动安装剩下的,主要有一下三个
SDL_mixer-1.2.12.tar.gz SDL_image-1.2.11.tar.gz SDL_rtf-0.1.0.tar.gz
下载地址:http://www.libsdl.org/projects/打开对应的目录进行下载,若没有在浏览器地址后添加/release就可以找到。
(ubuntu下可以直接使用命令apt-get install libsdl-image1.2-dev完成所有库的安装)
然后依次解压,进入解压的目录./configure make&&make install
pkg-config工具的使用
有时候会碰到一种情况,库文件明明是安装了,可是编译程序时候,总是提示缺少libXXX.so.2等等之类的错误。这是为什么呢?
这是由于系统在编译程序时,使用默认的目录进行遍历,新安装的库的路径系统暂时找不到,为此有一种工具pkg-config来解决这些种种的问题。它主要的功能有以下几点:
# Package Information for pkg-config
prefix=/usr/local
exec_prefix=${prefix}
libdir=
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 2.4.6.1
Libs: ${exec_prefix}/lib/libopencv_calib3d.so ${exec_prefix}/lib/libopencv_contrib.so ${exec_prefix}/lib/libopencv_core.so ${exec_prefix}/lib/libopencv_features2d.so ${exec_prefix}/lib/libopencv_flann.so ${exec_prefix}/lib/libopencv_gpu.so ${exec_prefix}/lib/libopencv_highgui.so ${exec_prefix}/lib/libopencv_imgproc.so ${exec_prefix}/lib/libopencv_legacy.so ${exec_prefix}/lib/libopencv_ml.so ${exec_prefix}/lib/libopencv_nonfree.so ${exec_prefix}/lib/libopencv_objdetect.so ${exec_prefix}/lib/libopencv_photo.so ${exec_prefix}/lib/libopencv_stitching.so ${exec_prefix}/lib/libopencv_superres.so ${exec_prefix}/lib/libopencv_ts.so ${exec_prefix}/lib/libopencv_video.so ${exec_prefix}/lib/libopencv_videostab.so
Cflags: -I${includedir_old} -I${includedir_new}
~
为了让pkgconfig可以找到你的pc文件,你要把pc文件所在的路径,设置在环境变量 PKG_CONFIG_PATH 里具体操作可以这样:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/库文件目录/pkgconfig
如果觉得麻烦,可以将以上这条命令写入一个文件,比如opencv.pkg 然后使用命令source opencv.pkg即可。
安装完ffmpeg后,为了使opencv支持ffmpeg,我们需要把有关ffmpeg的.pc文件的路径导入PKG_CONFIG_PATH,由于是默认安装,执行
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig即可
然后重新编译、安装opencv,cmake生成makefile文件的过程中出现如下的信息,就支持ffmpeg了
使用opencv时,需要注意pkg-config的使用,具体的使用方法如下:
pkg-config 库的名称(如:opencv) --libs
pkg-config 库的名称(如:opencv) --cflags
pkg-config 库的名称(如:opencv) --libs --cflags
编译opencv程序的时候必须添加:
`pkg-config opencv --cflags --libs`参数
如本博客前面出现的opencv测试程序都需要添加这个参数
可以采用编写makefile文件的方式避免每次都写这个参数,每次编译程序时候只需要改变源程序即可,例程如下:
CC=g++
INCLUDE=$(shell pkg-config opencv --cflags)
LIBS=$(shell pkg-config opencv --libs)
SOURCE=sift.c
BIN=sift
$(BIN):$(SOURCE)
$(CC) $(INCLUDE) $(LIBS) $(SOURCE) -o $(BIN)
clean:
rm -rf $(BIN)
~
注意此makefile文件中,使用pkg-config时候的写法!!!