1. 程式人生 > >有關於ubuntu16.04 ffmpeg的編譯

有關於ubuntu16.04 ffmpeg的編譯

ffmpeg的下載連結:點選開啟連結

下載後按照下面的操作步驟即可安裝成功。

一.  安裝yasm庫(有助於提高ffmpeg的編解碼效率)
     1). 解包yasm-1.3.0.tar.gz
         進入yasm-1.3.0目錄
     2). 執行./configure產生Makefile 
     3). make  && make install
    安裝cmake工具(編譯c++原始碼工程的工具, 編譯libx265庫用到)
    apt-get install cmake
    安裝好後,檢查cmake的版本
    cmake --version 如果大於3.5則不需安裝cmake-3.5
    否則需安裝cmake-3.5
    1). 解包cmake-3.5.0.tar.gz
    進入cmake-3.5.0目錄
    2). 執行./configure產生Makefile
    configure完成後, 通過"echo $?"檢視執行結果是否成功.
    如果不是0,則不成功, 不能作下一步.
    3). 執行make && make install


----------------------------------------------------------------------


二. 編譯h264編解碼庫
    1). 解包last_x264.tar.bz2
    進入x264-snapshot-20160319-2245目錄
    2). 執行"./configure --enable-shared --enable-static"
       enable-shared 加上編譯出動態庫的支援
       enable-static 加上編譯出靜態庫的選項
    3). make && make install
    安裝完成後, h264庫的標頭檔案在/usr/local/include
               動靜態庫在/usr/local/lib
           x264.pc庫的配置檔案在/usr/local/lib/pkgconfig


-----------------------------------------------------------------------


三. 編譯h265編解碼庫
    1). 解包x265_1.9.tar.gz
    進入x265_1.9目錄裡的build/linux目錄
    2). 在終端下執行目錄下的make-Makefiles.bash指令碼檔案
    執行時會彈出介面選項, 按'c'再按'g'鍵儲存退出
    3). make 
    如出現如下錯誤資訊:
    x265_1.9/source/common/param.cpp:55: 錯誤:‘char* strtok_r(char*, const char*, char**)’先被宣告為‘extern’後又被宣告為‘static’
    修改x265_1.9/source/common/param.cpp的55行, 把"static"關鍵字去掉
    4). make install
    h265庫的標頭檔案在/usr/local/include
    動靜態庫在/usr/local/lib
    x265.pc庫的配置檔案在/usr/local/lib/pkgconfig


--------------------------------------------------------------------------


四.  編譯ffmpeg庫
    1). 解包ffmpeg-3.0.tar.bz2
    進ffmpeg-3.0目錄裡
    2). 在終端裡輸入命令: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
    ./configure --disable-debug --enable-libx264 --enable-libx265 --enable-gpl --enable-shared
    注意檢視輸出的資訊:
    enabled program: 是否有ffplay(沒有的話,apt-get install ffmpeg ,會替換掉一些庫,親測)  
    3). make && make install    
    cp /usr/local/lib/libx* /lib64/
    cp /usr/local/lib/libav*  /lib64/
    cp  /usr/local/lib/libsw* /lib64/
    cp /usr/local/lib/libpostproc* /lib64/
    也可以不作上面cp的操作,但在編譯時需指定庫的路徑


---------------------------------------------------------------------------


完成後, 有命令: ffmpeg   ffplay
    ffmpeg -decoders  //列出可用的解碼器   H264  H265
    ffmpeg -encoders  //列出可用的編碼器
    ffmpeg -devices   //列出可支援的裝置