FFmpeg開發筆記(三十九)給Visual Studio的C++工程整合FFmpeg

aqi00發表於2024-07-20
《FFmpeg開發實戰:從零基礎到短影片上線》一書的“第11章 FFmpeg的桌面開發”介紹瞭如何在Windows環境對Qt結合FFmpeg實現桌面程式,那麼Windows系統透過Visual Studio開發桌面程式也是很常見的,下面就介紹如何在Visual Studio的C++工程中整合FFmpeg庫和SDL2庫。

首先按照《FFmpeg開發實戰:從零基礎到短影片上線》一書第1章“1.3 Windows系統安裝FFmpeg”的介紹,把已編譯好的FFmpeg庫安裝到個人電腦的E:\msys64\usr\local\ffmpeg(該安裝目錄可替換為自己電腦實際的安裝路徑,注意一旦更換FFmpeg的安裝目錄,後面所有的FFmpeg安裝路徑配置也要跟著修改)。
再開啟事先安裝的Visual Studio 2022,建立一個基於C++的控制檯應用專案。等待Visual Studio開啟新專案,在主介面右側的解決方案資源管理器視窗中右擊專案名稱,選擇右鍵選單底部的屬性選項。在彈出的屬性頁面中,依次選擇左側的列表項:配置屬性→VC++目錄,並在屬性頁面右側的列表項中依次選擇:常規→外部包含目錄→編輯。在彈出的外部包含目錄視窗中新增下列標頭檔案目錄(具體路徑根據自己電腦上的ffmpeg安裝路徑調整):

E:\msys64\usr\local\ffmpeg\include
E:\msys64\usr\local\sdl2\include

單擊外部包含目錄視窗右下角的確定按鈕,確認新增上面兩個標頭檔案目錄。
接著依次選擇屬性頁面左側的列表項:配置屬性→連結器→常規,並在頁面右側的列表項中依次選擇:附加庫目錄→編輯。在彈出的附加庫目錄視窗中新增下列庫檔案目錄(具體路徑根據自己電腦上的sdl2安裝路徑調整):

E:\msys64\usr\local\ffmpeg\lib
E:\msys64\usr\local\sdl2\lib

單擊附加庫目錄視窗右下角的確定按鈕,確認新增上面兩個庫檔案目錄。
接著依次選擇屬性頁面左側的列表項:配置屬性→連結器→輸入,並在頁面右側的列表項中依次選擇:附加依賴項→編輯。在彈出的附加依賴項視窗中新增下列lib檔案列表:

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib
SDL2.lib

新增了lib檔案配置的附加依賴項視窗如下圖所示。單擊附加依賴項視窗右下角的確定按鈕,確認新增上述的lib檔案列表。

然後單擊屬性頁面右下角的確定按鈕,完成FFmpeg與SDL2的依賴庫匯入設定。
回到Visual Studio 2022的主介面,在左側的程式碼編輯視窗中填寫下面的FFmpeg測試程式碼,主要是呼叫FFmpeg框架的av_log函式來輸出“Hello World”。

extern "C"
{
#include <libavutil/avutil.h>
}

int main(int argc, char** argv) {
    av_log(NULL, AV_LOG_INFO, "Hello World\n");
    return 0;
}

儲存測試程式碼後,依次選擇頂部選單:除錯→開始執行。Visual Studio就開始編譯測試程式,編譯完畢彈出控制檯視窗輸出了一行日誌“Hello World”,說明成功在Visual Studio的C++工程中整合了FFmpeg庫。

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

相關文章