ffmpeg做为一个多媒体框架和平台,最大的优点就在于能够很灵活地支持多种编解码和其余特性,只要第三方外部库支撑均可以作到。本次安装下列第三包依赖包:git
faac:全称是Free Advanced Audio Coder,是MPEG-4和MPEG-2 AAC的一款经常使用的开源编解码器;
lame:一款常见的mp3的开源编解码器;
libass:先说一下ASS/SSA,其全称是Advanced Substation Alpha/Substation Alpha,是一种功能极为强大的字幕格式,主要用在视频文件里显示字幕。而libASS是一个轻量级的对ASS/SSA格式字幕进行渲染的函数库,使用C编写,效率很是高;
libdc1394:这是面向高级语言编程接口的一个库,主要提供了对符合IEEE 1394规范的数码摄录设备的一组操做接口。符合1395规范的数码相机标准的全称是1394-based Digital Camera Specifications,简称为IIDC或DCAM。安装dc1394须要先安装raw1394;
libfreetype2:freetype是一个用C语言实现的一个字体光栅化库,它能够用来将字符栅格化并映射成位图以及提供其余字体相关业务的支持。freetype提供了一个简单、易用并统一的接口来访问字体文件的内容。freetype不只被自由桌面系统软件所使用,同时它也是现代视频游戏普遍使用的栅格化引擎;
libvorbis:这个库主要用于处理ogg格式的音频文件,而ogg全称是ogg vorbis,一种相似mp3的音频压缩格式。不一样于mp3的是ogg彻底免费、开放和没有专利限制的。ogg文件格式能够不断地进行大小和音质的改良,而不影响旧有的编码器或播放器,主要由Xiph.org基金会开发;
libtheora:theora也是Xiph.org基金会开发,是一种有损的影像压缩格式;
openssl:这个就很少说了,不少安全框架的基础;
rtmpdump:一个开源的rtmp格式的流媒体库,RTMP(Real Time Messaging Protocol)是Adobe Systems公司为它自家的flash播放器和服务器之间音频、视频和数据传输开发的一种开放的传输协议;
speex:speex是一套主要针对语音的开源免费、无专利保护的音频压缩格式,致力于经过提供一个能够替代高性能语音编解码来下降语音应用输入门槛。相对于其它编解码器,speex很是适合网络应用,由于它专为2-44kpbs语音码流所设计,因此在网络应用上有着本身独特的优点;
twolame:一个开源的mp2格式的编解码库;
vo-aacenc:AAC格式的经常使用的音频编码器;
xvidcore:是一个开放源代码的MPEG-4视频编解码器;
x264:目前最流行,最多见的H.264视频格式的一个开源的编解码器;编程
将须要的软件包所有下载后,剩下的事儿就很是简单:“三大步”---configure && make && make install
安装顺序以下:faac、lame、libtheora(须要先安装libogg)、libvorbis、vo-aacenc、xvidcore、x26四、libdc1394(须要先安装libraw1394)、libass(须要先依次安装libfreetype二、fribidi和fonconfig)、openssl、librtmp、libspeex、twolame、yasm,最后安装ffmpeg。bootstrap
在经过源码包安装上述软件时,若是在configure阶段没有用--prefix指定安装目录,默认状况下安装的顶级目录是/usr/local,可执行程序会被安装到/usr/local/bin,动态库被安装到/usr/local/lib,头文件在/usr/local/include等等。这样会有一个小小的麻烦,例如当先安装libogg后,再安装libtheora时,你有可能会收到以下的错误提示信息:安全
|
明明安装了ogg但theora却认为我们没安装。缘由在哪里,固然是动态库的查找路径了。个人解决办法是在 /etc/ld.so.conf.d/目录下建立一个名为local-libraries.conf的文件,内容很简单,只有一行:服务器
[root@localhost src]# cat /etc/ld.so.conf.d/local-libraries.conf网络
/usr/local/libapp
[root@localhost src]#框架
而后执行ldconfig -v,而后再安装libtheora就很happy了。
固然还没完,当你在安装libass时,当你把全部依赖包都先安装以后,在configure阶段,它总会提醒你说:Package requirements (freetype2 >= 9.10.3) were not met函数
任凭你怎么执行ldconfig都没用。不过你要是注意到错误提示信息其实问题的解决也就挺简单,在configure阶段在探测依赖包时用到了一个叫作pkg-config的工具,它会自动去查找当前系统是否支持某些类型的动态库文件,主要是经过一个*.pc文件。而一些标准so库源码包里都会提供一个这样的文件以便pkg-config来用,而问题就在pkg-config查找*.pc文件的路径上。关于这个工具更多细节就不展开了,感兴趣的朋友能够去google一下。这里个人解决办法是:工具
[root@localhost libass-0.10.1]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
而后安装libass时也就很happy了。
最后,在安装ffmpeg前须要先安装yasm,版本至少1.2.0以上。
下面是个人安装ffmpeg时相关软件包的配置状况,以便各位参考:
1 faac [root@localhost faac]#./bootstrap[root@localhost faac]#./configure --prefix=/usr/local/ --enable-shared[root@localhost faac]#make && make install2 lame[root@localhost lame-3.98.4]#./configure --prefix=/usr/local/ --enable-shared[root@localhost lame-3.98.4]#make && make install3 libogg[root@localhost libogg-1.3.0]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libogg-1.3.0]#make && make install4 libtheora[root@localhost libtheora-1.1.1]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libtheora-1.1.1]#ldconfig -v[root@localhost libtheora-1.1.1]#make && make install5 libvorbis[root@localhost libvorbis-1.3.3]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libvorbis-1.3.3]#make && make install6 vo-aacenc[root@localhost vo-aacenc-0.1.2]#./configure --prefix=/usr/local/ --enable-shared[root@localhost vo-aacenc-0.1.2]#make && make install7 xvidcore[root@localhost xvidcore-1.3.2]#./configure --prefix=/usr/local/ [root@localhost xvidcore-1.3.2]#make && make install8 yasm[root@localhost yasm-1.2.0]#./configure --prefix=/usr/local/ [root@localhost yasm-1.2.0]#make && make install9 x264[root@localhost x264-snapshot-20130505-2245]#./configure --prefix=/usr/local/ --enable-shared --enable-pic[root@localhost x264-snapshot-20130505-2245]#make && make install10 libraw1394[root@localhost libraw1394-2.0.5]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libraw1394-2.0.5]#make && make install11 libdc1394[root@localhost libdc1394-2.2.1]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libdc1394-2.2.1]#make && make install12 libfreetype[root@localhost libfreetype2-master]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libfreetype2-master]#make && make install13 fribidi[root@localhost fribidi-0.19.4]#./configure --prefix=/usr/local/ --enable-shared[root@localhost fribidi-0.19.4]#make && make install14 fonconfig[root@localhost fontconfig-2.9.0]#./configure --prefix=/usr/local/ --enable-shared[root@localhost fontconfig-2.9.0]#make && make install15 libass[root@localhost libass-0.10.1]#./configure --prefix=/usr/local/ --enable-shared[root@localhost libass-0.10.1]#make && make install (xuyao )16 openssl[root@localhost openssl-1.0.1c]#./config --prefix=/usr/local/ --openssldir=/usr/local/openssl threads zlib-dynamic shared[root@localhost openssl-1.0.1c]#make && make install17 librtmp[root@localhost rtmpdump-2.3]#make SYS=posix[root@localhost rtmpdump-2.3]#make install18 libspeex[root@localhost speex-1.2rc1]#./configure --prefix=/usr/local/ --enable-shared --enable-sse[root@localhost speex-1.2rc1]#make && make install19 twolame[root@localhost twolame-0.3.13]#./configure --prefix=/usr/local/ --enable-shared[root@localhost twolame-0.3.13]#make && make install20 FFmpeg[root@localhost ffmpeg-1.2]#./configure --prefix=/usr/local/ --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-zlib --enable-bzlib --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libx264 --enable-libxvid --enable-pic --enable-pthreads --enable-libdc1394 --enable-libass --enable-pic --enable-openssl --enable-libtwolame --enable-libspeex --enable-librtmp --enable-libfreetype [root@localhost ffmpeg-1.2]#make && make install