ffmpeg安裝第三方編碼器

安裝好了ffmpeg後,如果你使用ffmpeg工具去把某個視頻文件轉成h264視頻編碼、mp3音頻編碼or其他ffmpeg自身不帶的xxx編碼類型,就會看到報錯信息,unknown encoder 'xxx'。此刻你需要的只要去安裝其他的編碼器就行了,本質上其實是把其他的編碼器以庫的形式安裝好,例如,把正確的libx264.so or libx264.a存放在/usr/lib下 or /usr/local/lib下

舉兩個例子吧,視頻方面的編碼器就拿h264來說,音頻方面的例子就拿mp3(mp3lame)來說。

    Linux下安裝一個正規的軟件,一般都是三部曲,①、【./configure】(加一些可能的參數,比如enable一些功能,disable一些功能,究竟有哪些功能可以開啓和關閉呢?一般通過./configure --help命令來查詢),②、【make】(編譯),③、【sudo make install】(把生成的二進制應用程序文件和.so和.a複製到/usr/local/下)


一.h264

     動手搜一下ffmpeg的工程代碼庫,會發現每個codec都有一下幾個成員變量,但是有好幾個codec缺少encoder,h264就是其中一個了。先不管什麼原因,ffmpeg沒有原生的支持h264,但是你可以查看一下avcodec_register_all這個API,會發現一大片的REGISTER_ENCODER(XXX, xxx)

REGISTER_DECODER(XXX, xxx)

這裏分很多塊,例如/* video codecs */,/* audio codecs */,/* external libraries */

但是你在/* video codecs */這一塊卻看不到h264的REGISTER_ENDECODER (H264, h264);這句話,如果你堅持往下翻,你會在/* external libraries */這塊裏面發現REGISTER_ENCODER (LIBX264, libx264);所以ffmpeg是有給h264準備好了接口的,但是需要第三方庫來支持。

回到重點,怎麼裝呢?

    1.先下載x264的工程代碼,【git clone git://git.videolan.org/x264.git】。

    2.進入x264目錄,然後./configure --help看看它的幫助信息,我們這裏需要的是x264以.so or .a的形式來支援ffmpeg,所以一般就關注shared和static關鍵詞就可以了。執行./configure --enable-shared --enable-static就行了。

    3.完了make && sudo make install就可以了。

    你會發現我們在./configure的時候沒有指定前綴--prefix=/usr,很明顯,libx264.so和libx264.a就會複製到/usr/local/lib下去,記住這裏,等下會因爲這裏要做一些修改。


二.mp3lame

    上面說了h264,相信mp3lame理解起來就簡單多了。

    1.先下載mp3lame的工程代碼,http://sourceforge.net/projects/lame/files/lame/,爲什麼這裏要顯得多餘的講一下mp3lame呢,是這樣的。大家可以看到x264用的是git,mp3lame是用的sourceforge,不妨再多說一個faac(也是一種原生ffmpeg不支持的音頻codec),faac用的是http://sourceforge.net/projects/faac/files/faac-src/,所以每一種codec或者很重要的軟件都有一個團隊或者社區在維護,所以需要什麼東西,儘量去sourceforge或者git上找,其他地方找的可能不夠新,可能不完整不正確。

    2.然後也是./configure --help先,看看哪些功能是我們需要打開關閉的

    3.完了make && sudo make install就可以了。

    很明顯,我們又沒有指定--prefix-/usr,所以mp3lame的libmp3lame.so和libmp3lame.a就被賦值到了/usr/local/lib下了。


三.重新編譯ffmpeg

http://blog.csdn.net/u012814360/article/details/39345431


發佈了51 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章