Ubuntu平台下载和编译FFmpeg

时间:2022-10-05 04:35:37
新书上市《深入解析Android 5.0系统》
FFmpeg是Linux下一个开源的的音视频解决方案,采用LGPL或GPL许可证(依据选择的组件)。 FFMpeg的官方网站是http://www.ffmpeg.org/,官网目前最新版本的源码2.2.1。源码可以有多种下载方式,对Android开发者而言,git方式无疑是最方便的,使用下面的命令就可以下载完整的源码:git clonegit://source.ffmpeg.org/ffmpeg.git ffmpeg ffmpeg的编译方式和大多数开源的Linux软件类似,非常简单,三条命令就完成了:./configuremakesudo makeinstall 但是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-getinstall libsdl1.2-dev如果不安装sdl,即使加上了参数--enable-ffplay也不会打开ffplay的编译开关。 make 和 sudo makeinstall 执行完成后在/usr/local/ffmpeg目录下会生成bin目录和lib目录,需要把它们加入到ubuntu的路径中。打开~/.bashrc文件,加入下面两行:exportLD_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: 包含了调整声音采用率的函数。