音視訊技術應用(2)-ffmpeg專案建立和原始碼pdb除錯設定
1.拷貝庫檔案和標頭檔案
在任意位置新建一個空目錄,分別建立以下幾個資料夾:
bin:用於存放剛才編譯好的動態連結庫檔案。
include:用於存放標頭檔案。
lib:用於存放字尾名為.lib的庫檔案,實際上只是庫的路徑。
src:用於存放測試的原始碼。
tools:用於存放ffmpeg的原始碼,方便將來除錯的時候能夠進入到ffmpeg的原始碼。
在bin目錄下新建一個x86目錄,將剛才編譯好的ffmepg動態連結庫,fdk-aac的動態連結庫,x264, x265的動態連結庫全部拷貝到當前目錄下:
在lib目錄下新建一個x86目錄,將 ffmpeg編譯生成的庫檔案(以.lib結尾)放置到該目錄下:
拷貝ffmepg的標頭檔案到include目錄下:
將ffmpeg4.3的原始碼放置到tools目錄下:
2.新建一個空專案
開啟VS2019,選擇“建立新專案”
點選“建立控制檯應用”,然後點選下一步:
位置選擇為我們剛才建立的原始碼目錄,比如我剛才建立的位置就在 “D:\code\src”,專案名稱命名為:first_ffmpeg,勾選“將解決方案和專案放在同一目錄中”:
點選“建立”,就完成了新專案的建立。
3.配置專案屬性
右擊“first_ffmpeg”,選擇“屬性”:
然後選擇“C/C++”,點選右側的“附加包含目錄”,點選右側的下拉箭頭,點選“編輯”:
輸入include目錄
然後點選“確定”。
標頭檔案路徑新增好了,接下來我們來新增庫檔案的路徑:
依次選擇“連結器”-》“附加庫目錄”-》然後輸入 ..\..\lib\x86
接下來配置輸出目錄。這個輸出目錄指的是編譯生成的.exe檔案和pdb除錯檔案,我們把這兩種型別的檔案放置到同一個目錄下。
選擇配置屬性-“常規”-輸出目錄,將輸出目錄修改為:..\..\bin\x86
接下來配置除錯目錄,我們把除錯目錄的地址修改為跟上面的工作目錄一致:
選擇“配置屬性”-“除錯”-“工作目錄”,將工作目錄修改為 ..\..\bin\x86
4.編寫一份測試code,檢查ffmpeg是否可以順利編譯通過:
修改first_ffmpeg.cpp為如下程式碼:
#include <iostream> using namespace std; extern "C" { // 指定函式是C語言函式,以C語言的方式去編譯 #include <libavcodec/avcodec.h> } // 以預處理指令的方式匯入庫 #pragma comment(lib, "avcodec.lib") int main() { cout << "Hello World!" << endl;; cout << avcodec_configuration() << endl; }
點選頂部的 “本地Windows偵錯程式”按鈕編譯執行,如果能夠在控制檯正常打印出avcodec的相關配置資訊,則說明ffmpeg已經可以順利編譯成功了。
接下來測試下是否可以進入到ffmpeg當中的原始碼:
在第15行新增斷點,點選F5開始除錯,然後點選F11,嘗試進入到avcodec_configuration()函式當中,如果能順利進入到該函式當中,則說明原始碼也關聯成功了。
注:第10行我們採用的是預處理的方式匯入庫,如果不想使用這種方式,可以右擊“屬性”-“連結器”-“附加依賴項”,點選右側的下拉箭頭,點“編輯”輸入avcodec.lib
使用這種方式也可以順利匯入庫。