音視頻技術應用(3)-Linux編譯x264,x265,fdk-aac, ffmpeg 測試並運行


本文測試的環境為 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目錄下。

<完>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM