动态

详情 返回 返回

FFmpeg開發筆記(七十二)Linux給FFmpeg集成MPEG-5視頻編解碼器EVC - 动态 详情

​MPEG-5是新一代的國際音視頻編解碼標準,像我們熟悉的MP3、MP4等音視頻格式就來自於MPEG系列。MP3格式的説明介紹參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“5.2  MP3音頻”,MP4格式的説明介紹參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“2.1.2  音視頻文件的封裝格式”。

MPEG-5有關視頻編解碼的內容主要有兩部分,一個是Part 1的基本視頻編碼(Essential Video Coding,EVC),另一個是Part 2的低複雜度增強視頻編碼(Low Complexity Enhancement Video Coding,LCEVC)。其中Part 1的EVC是由三星、華為、高通、Divideon 支持的MPEG標準,它由兩個配置文件組成,一個為只使用過期專利且免版税的基線規範,另一個為需要版税並使用創新編碼工具的主規範。EVC旨在提供比現有視頻編碼標準更高的壓縮效率,同時解決專利許可問題,實現免專利費的編碼方案。
相比現有的H.624和H.265標準,EVC在視頻編解碼方面擁有下列幾點優勢:
1、在主模式下,EVC的平均比特率比H.265低26%;在基線模式下,比H.264低31%。
2、EVC的解碼時間比H.264減少60%。
3、EVC的基線方案包含了超過20年的技術,可以實現免專利費的要求。
MPEG-5現已開源MPEG-5 EVC的視頻編解碼器,其中視頻解碼器的開源庫叫libxevd,視頻編碼器的開源庫叫libxeve。如今EVC的編解碼器libxevd和libxeve日漸成熟,從7.0版本開始的最新FFmpeg源碼已經支持EVC的編解碼器libxevd和libxeve。
接下來以華為的歐拉系統為例,介紹如何在Linux環境給FFmpeg集成MPEG-5 EVC視頻編解碼器libxevd和libxeve,具體的操作步驟説明如下:

一、安裝libxevd

libxevd是一款MPEG-5的EVC視頻解碼器。它的源碼託管頁面在 https://github.com/mpeg5/xevd/ ,最新版本是2024年4月發佈的xevd-0.5.0,該版本的源碼包下載地址是 https://codeload.github.com/mpeg5/xevd/tar.gz/refs/tags/v0.5.0
libxevd的安裝步驟説明如下。
1、將下載好的壓縮包上傳到服務器並解壓,也就是依次執行以下命令。

tar zxvf xevd-0.5.0.tar.gz
cd xevd-0.5.0

2、在xevd目錄下創建新文件version.txt,文件內容填入“v0.5.0”,表示解碼器的版本為0.5.0。
3、執行以下命令配置libxevd

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

配置完成後,打開src_main/CMakeFiles/xevd_dynamic.dir/link.txt,在“-shared”後面補充“ -lm”,表示生成的動態庫要鏈接數學函數庫。
4、運行下面命令編譯libxevd。

make

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

make install

二、安裝libxeve

libxeve是一款MPEG-5的EVC視頻編碼器。它的源碼託管頁面在 https://github.com/mpeg5/xeve/ ,最新版本是2024年6月發佈的xeve-0.5.1,該版本的源碼包下載地址是 https://codeload.github.com/mpeg5/xeve/tar.gz/refs/tags/v0.5.1
注意:由於FFmpeg僅支持版本號大於等於0.5.1的libxeve,因此務必下載xeve-0.5.1,不可下載xeve-0.5.0。
libxeve的安裝步驟説明如下。
1、將下載好的壓縮包上傳到服務器並解壓,也就是依次執行以下命令。

tar zxvf xeve-0.5.1.tar.gz
cd xeve-0.5.1

2、在xeve目錄下創建新文件version.txt,文件內容填入“v0.5.1”,表示編碼器的版本為0.5.1。
3、執行以下命令配置libxeve

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

配置完成後,打開src_main/CMakeFiles/xeve_dynamic.dir/link.txt,在“-shared”後面補充“ -lm”,表示生成的動態庫要鏈接數學函數庫。
4、運行下面命令編譯libxeve。

make

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

make install

三、讓FFmpeg啓用libxevd和libxeve

由於FFmpeg默認未啓用libxevd和libxeve,因此需要重新配置FFmpeg,標明啓用libxevd和libxeve,然後重新編譯安裝FFmpeg。
先下載最新的FFmpeg源碼(版本號需大於等於7.0),再把FFmpeg源碼包上傳到Linux服務器的/usr/local/src目錄下。接着登錄Linux服務器的控制枱,執行下面命令解壓源碼包:

cd /usr/local/src
unzip ffmpeg-n7.1.1.zip

確保Linux環境已經按照《FFmpeg開發實戰:從零基礎到短視頻上線》該書第一章的“1.2  Linux系統安裝FFmpeg”安裝了H.264的編碼器libx264和H.265的編碼器libx265,並且按照之前的文章安裝了H.266的編碼器libvvenc,然後執行以下的liblc3啓用步驟。
1、回到FFmpeg源碼的目錄,執行以下命令重新配置FFmpeg,主要增加啓用libxevd和libxeve。(增加了選項“ --enable-libxevd --enable-libxeve”)

cd ffmpeg-n7.1.1
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-liblc3 --enable-libxevd --enable-libxeve --enable-libxevd --enable-libxeve --enable-iconv --enable-gpl --enable-nonfree

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

make clean
make -j4

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

make install

四、查看FFmpeg的安裝結果

運行下面命令查看FFmpeg的安裝版本:

ffmpeg -version

上面命令返回的FFmpeg版本信息如下:

ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 10.3.1 (GCC)
configuration: --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-liblc3 --enable-libxevd --enable-libxeve --enable-iconv --enable-gpl --enable-nonfree
libavutil      59. 39.100 / 59. 39.100
libavcodec     61. 19.101 / 61. 19.101
libavformat    61.  7.100 / 61.  7.100
libavdevice    61.  3.100 / 61.  3.100
libavfilter    10.  4.100 / 10.  4.100
libswscale      8.  3.100 /  8.  3.100
libswresample   5.  3.100 /  5.  3.100
libpostproc    58.  3.100 / 58.  3.100

根據以上返回的版本信息,可知已安裝的FFmpeg版本號為7.1.1,同時configuration這行找到“--enable-libxevd --enable-libxeve”,説明FFmpeg已經啓用了MPEG-5 EVC視頻編解碼器libxevd和libxeve。

更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。

user avatar pipigao 头像 y_luoe_hai_61a734cbf3c94 头像
点赞 2 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.