1.1 源码下载
用GIT从下面地址下载:git://source.ffmpeg.org/ffmpeg.git
例如:在linux下:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
1.2 依赖
如果要编译ffplay,它依赖sdl库。安装SDL库:http://www.libsdl.org/
ffmpeg 0.11,需要make3.82版本。由于现在ffmpeg处理活动期,所以最好是在最新的linux操作系统上编译。这样autoconf、automake、make这些工具可以是最新的,就不用升级。
如果是windows下编译,还需要cygwin或者minwin
cygwin下可以会因为回车符产生以下错误:
./makes: line 2: $'\r': command not found 解决方法以: 1、配置cygwin系统,让cygwin忽略dos回车符 以下是具体的修改方法! # ignore return set -o igncr export SHELLOPTS |
2、用dos2unix命令转换有回车符的文件:
dos2unix 文件
3、用VI替换文件中的回车符
%s/\n/^M/g
其中^M这个需要先Ctrl+v再按回车得到
1.3 编译、安装
1.3.1 在linux下
./configure --disable-yasm
make
make install
默认安装在 /usr/local下。
设置pkg-config环境变量:
PKG_CONFIG_PATH=”$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig”
export PKG_CONFIG_PATH
或者用 libdir 指定依赖库的位置:
./configure --enable-libx264 --enable-gpl --libdir=/usr/local/lib
1.3.2 cygwin下编译与linux下编译一样。
如果在windows环境下使用,则需要把C:\cygwin\bin加到环境变量PATH中。因为ffmpeg程序依赖的cygwin的库都存在这里。
发行时,就需要把相关依赖的库放到同一目录中。
用ldd ffmpeg 查看依赖哪些库。
1.3.3 mingw下编译与linux下编译一样。
1.3.4 在cygwin下用mingw来交叉编译:
./configure --cross_prefix=i686-pc-mingw32- --target-os=mingw32 --arch=i686 --prefix=/usr/i686-pc-mingw32/sys-root/mingw --enable-swscale --enable-postproc --enable-gpl
会提示说i686-pc-mingw32-pkg-config没找到,不过这没有关系,可以忽略,如果要安装,可以从下面地址下载glib和pkg-config包,pkg-config依赖glib:
然后把它们复制到:
/usr/i686-pc-mingw32/sys-root/mingw 目录下
如果在windows环境下使用,则需要把C:\cygwin\usr\i686-pc-mingw32\sys-root\mingw\bin加到环境变量PATH中。因为mingw程序依赖的cygwin的库都存在这里。
发行时,就需要把相关依赖的库放到同一目录中。