本文測試的環境為 ubuntu18.06, 下載地址:http://mirrors.aliyun.com/ubuntu-releases/18.04/ubuntu-18.04.6-desktop-amd64.iso
1. 安裝可能用到的工具鏈
打開終端,執行下列指令,安裝所有用到的工具鏈:
sudo -i apt-get install make cmake g++ nasm yasm diffutils pkg-config -y
-y 表示不必每次詢問,每次都是yes
2. 編譯x264
首先下載x264的源碼:
鏈接: https://pan.baidu.com/s/116ctuWFJcOUdBPSdujST8g 提取碼: 5eug
下載完成后解壓,然后 cd 到 x264的當前目錄下打開終端,執行下列指令:
執行配置項:
./configure --enable-shared --prefix=/usr
執行make -j16
安裝到usr 目錄下,之所以安裝到usr目錄下是因為linux的系統環境變量默認已經支持該路徑。
執行make install
可以看到x264已經順利安裝到/usr目錄下,這樣x264就編譯好了。
3. 編譯x265
接下來編譯x265,首先下載x265的源碼:
鏈接: https://pan.baidu.com/s/1PjQD_ZOri_HSVY9pcRLgQg 提取碼: i3a2
下載完畢后解壓,然后定位到x265的build/linux目錄:
可以看到x265提供了一個名為make-Makefiles.bash 的文件用於自動生成Makefile, 下面執行該文件生成Makefile:
執行:./make-Makefiles.bash
執行完畢后發現當前目錄下已經可以生成了Makefile文件:
PS: 若編譯時提示:
需要安裝cmake-curses-gui:
然后在運行上面的 ./make-Makefiles.bash 腳本,就沒得問題了, 最后就是 make:
make-j16
make install
這樣x265就編譯完了。
4. 編譯fdk-aac
首先下載fdk-aac的源碼文件:
鏈接: https://pan.baidu.com/s/1HYj8gkLBDhd4N8FKgi9Tiw 提取碼: nskj
下載完成后解壓,然后定位到fdk-aac的根目錄:‘
執行./autogen.sh, 以生成configure文件:
若提示 autoreconf not found, 則需要安裝automake 工具,使用下列指令安裝這些工具:
apt-get install autoconf automake libtool -y
再次執行./autogen.sh 就不會報錯了:
同時也得到了configure文件:
下面更新一下配置項:
./configure --enable-shared -prefix=/usr
make -j16
make install
這樣fdk-aac就編譯好了。
5. 編譯ffmpeg
首先下載ffmpeg的源碼:
鏈接: https://pan.baidu.com/s/16AZP8wxHiDgY3jyQ8GhWfQ 提取碼: 3sjv
下載完成后解壓,並定位到ffmpeg的當前目錄:
配置configure 文件,生成makefile
./configure --enable-shared --prefix=/usr --disable-programs --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265
make -j16
make install
這樣ffmpeg就編譯好了。
6. 測試ffmpeg是否能在linux環境下正常運行
將先前在windows環境編譯好的first_ffmpeg項目拷貝到linux環境下:
我們為這個項目編寫一個簡單的makefile 用於編譯 first_ffmpeg.cpp
first_ffmpeg:first_ffmpeg.cpp g++ $^ -o $@ -lavcodec
first_ffmpeg:first_ffmpeg.cpp // 冒號后面代表的是依賴項
$^ // 表示提取依賴項
$@ // 表示編譯的目標項,這里就是first_ffmpeg.
執行make 指令,並且執行./first_ffmpeg, 如果能夠看到下列log信息,則說明ffmpeg 已經可以正常編譯並運行了,。
PS: 如果提示x265 庫找不到,則執行:cp /usr/local/lib/libx265.x /usr/lib 將x265的庫由/usr/local目錄拷貝到/usr/lib目錄下。x265當前默認編譯在usr/local/lib目錄下。
<完>