动态

详情 返回 返回

FFmpeg開發筆記(六十一)Linux給FFmpeg集成H.266編碼器vvenc - 动态 详情

​《FFmpeg開發實戰:從零基礎到短視頻上線》該書的第一章介紹瞭如何在Linux環境給FFmpeg集成H.264和H.265的編碼器,如今H.266的編碼器vvenc也日漸成熟,從7.1版本開始的最新FFmpeg源碼已經支持H.266的編碼器vvenc。
H.266是H.265的升級版本,H.265的視頻編碼標準為HEVC(High Efficiency Video Coding,高效視頻編碼),H.266的視頻編碼標準為VVC(Versatile Video Coding,多功能視頻編碼)。其中VVC是HEVC的後繼者,目標是在相同視覺質量下將比特率降低50%。
至於VVEnc(Versatile Video Encoder)是一個開源的高效視頻編碼器,它實現了最新的視頻編碼標準VVC,能夠把視頻數據按照H.266標準編碼為VVC格式。VVEnc的源碼託管地址為https://github.com/fraunhoferhhi/vvenc ,國內的鏡像地址為https://gitee.com/mirrors/vvenc
接下來以華為的歐拉系統為例,介紹如何在Linux環境給FFmpeg集成H.266的編碼器vvenc,具體的操作步驟説明如下:

一、編譯安裝VVEnc

先下載最新的vvenc源碼,再把vvenc源碼包上傳到Linux服務器的/usr/local/src目錄下。接着登錄Linux服務器的控制枱,執行下面命令解壓源碼包:

cd /usr/local/src
unzip vvenc-v1.13.1.zip

然後執行下面命令配置vvenc的編譯環境:

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

如果看到cmake命令返回類似下面的“Configuring done”和“Generating done”字樣,就表示配置好了vvenc的編譯環境:

-- VVENC_ENABLE_THIRDPARTY_JSON: ON
-- Performing Test SUPPORTED_mxsave
-- Performing Test SUPPORTED_mxsave - Success
-- Performing Test SUPPORTED_msse4_2
-- Performing Test SUPPORTED_msse4_2 - Success
-- Performing Test SUPPORTED_mavx2
-- Performing Test SUPPORTED_mavx2 - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/vvenc-v1.13.1/build

於是執行下面命令編譯和安裝vvenc,編譯完成的vvenc庫將會安裝到cmake指定的/usr/local目錄。

make
make install

二、編譯安裝FFmpeg

先下載最新的FFmpeg源碼(版本號需大於等於7.1),再把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,然後執行下面命令配置FFmpeg的編譯環境:

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-iconv --enable-gpl --enable-nonfree

配置完畢執行下面命令編譯和安裝FFmpeg,編譯完成的ffmpeg庫將會安裝到configure指定的/usr/local/ffmpeg目錄。

make
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-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-libvvenc”,説明FFmpeg已經啓用了H.266的編碼器libvvenc。

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

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

Add a new 评论

Some HTML is okay.