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