1. 程式人生 > 其它 >音視訊技術應用(2)-ffmpeg專案建立和原始碼pdb除錯設定

音視訊技術應用(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目錄

的相對路徑:..\..\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

使用這種方式也可以順利匯入庫。