动态

详情 返回 返回

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

​《FFmpeg開發實戰:從零基礎到短視頻上線》該書的第八章介紹瞭如何在Windows環境給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
接下來以微軟的視窗系統為例,介紹如何在Windows環境給FFmpeg集成H.266的編碼器vvenc,具體的操作步驟説明如下:

一、配置VVEnc

先下載最新的vvenc源碼,解壓下載後的源碼包,再打開cmake-gui程序(cmake-gui的安裝説明見《FFmpeg開發實戰:從零基礎到短視頻上線》第八章的“8.1.5  給FFmpeg集成x265”)。cmake-gui窗口界面的source code欄填vvenc的源碼目錄,where to build欄填vvenc源碼下的build目錄,接着單擊窗口左下方的Configure按鈕,配置完成的窗口界面如下圖所示。

注意勾選窗口中間的BUILD\_SHARED\_LIBS選項,表示需要編譯共享庫也就是dll動態鏈接文件。然後單擊窗口左下方的Generate按鈕,生成完畢的窗口界面如下圖所示。

接着單擊窗口下方的Open Project按鈕,讓Visual Studio 2022打開已生成的vvenc工程。

二、編譯VVEnc

Visual Studio 2022打開之後,依次選擇頂部菜單:生成→配置管理器,在打開的配置管理器窗口上,找到左上角的“活動解決方案配置”下拉框,把Debug模式改為Release模式如下圖所示,再單擊窗口右下角的關閉按鈕。

依次選擇頂部菜單:生成→生成→生成vvenc,Visual Studio就開始編譯vvenc模塊。編譯過程可在Visual Studio界面下方觀察,直到編譯完成如下圖所示。

此時可在vvenc源碼目錄下找到bin和lib等目錄,這些就是編譯生成的可執行程序文件目錄和庫文件目錄。

三、安裝VVEnc

確保Windows系統已經按照《FFmpeg開發實戰:從零基礎到短視頻上線》第一章“1.3  Windows系統安裝FFmpeg”的説明安裝配置了MSYS,再按照以下步驟在MSYS環境安裝vvenc。
1、在msys64的/usr/local目錄下新建vvenc目錄,並在該目錄下創建lib子目錄;
2、把vvenc工程中lib\release-shared目錄下的vvenc.lib和bin\release-shared目錄下的vvenc.dll兩個文件複製到第一步創建的lib目錄;
3、在lib目錄下創建pkgconfig子目錄,並把vvenc工程的build\pkgconfig\libvvenc.pc複製到pkgconfig目錄;然後打開libvvenc.pc,把開頭四行改成下面這樣。

prefix=/usr/local/vvenc
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

4、把vvenc工程的include\vvenc目錄複製到msys64的/usr/local/vvenc/include目錄,把vvenc工程的build\vvenc目錄也複製到msys64的/usr/local/vvenc/include目錄;
經過以上步驟操作後的vvenc目錄結構如下所示。

/usr/local/vvenc
 |--------------- lib
 |                 |----- vvenc.lib
 |                 |----- vvenc.dll
 |                 |----- pkgconfig
 |                           |----- libvvenc.pc
 |--------------- include
 |                 |----- vvenc
 |                           |----- version.h
 |                           |----- vvenc.h
 |                           |----- vvencCfg.h
 |                           |----- vvencDecl.h

四、編譯安裝FFmpeg

先下載最新的FFmpeg源碼(版本號需大於等於7.1),再把FFmpeg源碼包複製到MSYS環境的/usr/local/src目錄下。接着在MSYS控制枱執行下面命令解壓源碼包:

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

確保MSYS環境已經按照《FFmpeg開發實戰:從零基礎到短視頻上線》該書第八章的“8.1.1  給FFmpeg集成x264”和“8.1.5  給FFmpeg集成x265”安裝了H.264的編碼器libx264和H.265的編碼器libx265,也按照該書第十章的“10.1.1  FFmpeg集成SDL”安裝了Windows系統的SDL2庫,然後執行下面命令配置FFmpeg的編譯環境:

cd ffmpeg-n7.1.1
export PKG_CONFIG_PATH=/usr/local/vvenc/lib/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --disable-doc --enable-libx264 --enable-libx265 --enable-libvvenc --enable-sdl2 --enable-gpl --enable-nonfree --enable-iconv --enable-zlib --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32

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

make
make install
cp /usr/local/vvenc/lib/vvenc.dll /usr/local/ffmpeg/bin

五、查看FFmpeg的安裝結果

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

ffmpeg -version

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

ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --disable-doc --enable-libx264 --enable-libx265 --enable-libvvenc --enable-sdl2 --enable-gpl --enable-nonfree --enable-iconv --enable-zlib --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32
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 chen_christins 头像 yayahonghong 头像
点赞 2 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.