From:http://blog.csdn.net/u013234805/article/details/24796635
FFmpeg是Linux下一个开源的的音视频解决方案,采用LGPL或GPL许可证(依据选择的组件)。
FFMpeg的官方网站是 http://www.ffmpeg.org/,官网目前最新版本的源码2.2.1。
源码可以有多种下载方式,对Android开发者而言,git方式无疑是最方便的,使用下面的命令就可以下载完整的源码:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
ffmpeg的编译方式和大多数开源的Linux软件类似,非常简单,三条命令就完成了:
./configure
make
sudo make install
但是configure命令稍微复杂一点,这个命令用来配置编译模块,有很多参数,在Linux下比较简单的参数如下:
configure --prefix=/usr/local/ffmpeg --enable-shared --disable-yasm --enable-ffplay
其中:
--prefix 指定了执行安装命令(make install)时的安装目录。
--enable-shared 指定编译出动态库
--disable-yasm 指定不编译yasm,如果不指定这条,会保错。
--enable-ffplay 指定编译ffplay模块,不加也可以。
源码目录下的configure是一个脚本文件,如果需要知道到底支持哪些参数,可以打开这个文件看一看。另外这个文件运行的结果是生成了config.mak文件,如果我们需要检查某个模块是否会编译,打开这个文件查看相应模块的名称前是否有“!”号,没有则说明会编译出来。
这里要注意的是,如果要编译出ffplay模块(FFMpeg自带的播放器),需要在Ubuntu下先安装sdl模块,命令如下:
sudo apt-get install libsdl1.2-dev
如果不安装sdl,即使加上了参数--enable-ffplay也不会打开ffplay的编译开关。
make 和 sudo make install 执行完成后在/usr/local/ffmpeg 目录下会生成bin目录和lib目录,需要把它们加入到ubuntu的路径中。打开~/.bashrc文件,加入下面两行:
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/ffmpeg/bin:$PATH
目录bin下有四个可执行文件:
ffplay:一个简单的音视频播放器。
ffmpeg:用于格式转换、解码或编码的工具。
ffprobe:用来获得每天文件的信息。
ffserver:用来搭建流媒体服务器。
目录lib下有七种库文件:
ibavformat:用于各种音视频封装格式(音频文件)的生成和解析。
libavcodec:用于各种类型图像、声音和视频的编解码。
libavdevice: 封装了和底层设备打交道的函数。
libavfilter:包括了图像处理中的各种滤镜效果。
libavutil:包含一些公共的函数。
libswscale:包含了图像,视频缩放、色彩映射转换等函数。
libswresample: 包含了调整声音采用率的函数。