FFmpeg開發筆記(二十)Linux環境給FFmpeg整合AVS3解碼器

aqi00發表於2024-05-12
AVS3是中國AVS工作組制定的第三代音影片編解碼技術標準,也是全球首個已推出的面向8K及5G產業應用的影片編碼標準。AVS工作組於2019年3月9日完成第三代AVS影片標準(AVS3)基準檔次的制訂工作,參考軟體的測試表明,AVS3基準檔次的效能比上一代標準AVS2和HEVC提升了約30%。

libuavs3d是AVS3標準的解碼器,最高可支援8K/60P影片實時解碼,支援windows/linux/arm/ios等所有常用平臺,在移動端最高支援4K/30fps影片實時解碼,解碼速度大幅領先AV1開源解碼器dav1d和aomdec。在《FFmpeg開發實戰:從零基礎到短影片上線》一書的“2.1.3 國家數字音影片標準AVS”介紹瞭如何在Linux環境給FFmpeg整合AVS2的編解碼器,其實也能給FFmpeg整合AVS3的解碼器libuavs3d。詳細的整合步驟說明如下。

一、安裝AVS3的解碼器libuavs3d

libuavs3d的原始碼託管在https://github.com/uavs3/uavs3d,注意要下載master的主幹程式碼,不可下載2019年的1.0版本程式碼(該版本的原始碼編譯有問題)。主幹程式碼的下載地址是https://codeload.github.com/uavs3/uavs3d/zip/refs/heads/master,把該連結複製到瀏覽器地址再按Enter鍵,即可開始下載原始碼包。
libuavs3d的安裝步驟說明如下。
1、將下載好的壓縮包上傳到伺服器並解壓,也就是依次執行以下命令。

unzip uavs3d-master.zip
cd uavs3d-master

2、執行指令碼version.sh,以便生成標頭檔案version.h,也就是執行以下命令。

chmod +x version.sh
./version.sh

3、進入解壓後的Build目錄,執行下面命令配置libuavs3d。

mkdir -p build/linux
cd build/linux
cmake -DCOMPILE_10BIT=1 -DBUILD_SHARED_LIBS=1 --install-prefix=/usr/local ../..

4、執行下面命令編譯libuavs3d。

make -j4

5、編譯完成後,執行下面命令安裝libuavs3d。

make install

二、讓FFmpeg啟用libuavs3d

由於FFmpeg預設未啟用libuavs3d,因此需要重新配置FFmpeg,標明啟用libuavs3d,然後重新編譯安裝FFmpeg。FFmpeg的Linux環境完整編譯過程參見《FFmpeg開發實戰:從零基礎到短影片上線》一書的“1.2.3 自行編譯與安裝FFmpeg”,詳細的啟用步驟說明如下。
1、回到FFmpeg原始碼的目錄,執行以下命令重新配置FFmpeg,主要增加啟用libuavs3d。(增加了選項--enable-libuavs3d)

./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-libfreetype --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-openssl --enable-libuavs3d --enable-iconv --enable-gpl --enable-nonfree

2、執行下面命令編譯FFmpeg。

make clean
make -j4

3、執行下面命令安裝FFmpeg。

make install

4、執行以下命令檢視FFmpeg的版本資訊。

ffmpeg -version

檢視控制檯回顯的FFmpeg版本資訊,找到“--enable-libuavs3d”,說明FFmpeg正確啟用了AVS3的解碼器libuavs3d。

相關文章