有關於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 //列出可支援的裝置