1. 程式人生 > >ffmpeg庫在VS2017中的編譯除錯

ffmpeg庫在VS2017中的編譯除錯

最近開始學習ffmpeg,其中參考了ffmpeg視訊教程連結:https://pan.baidu.com/s/1Z5M1erSc75TaSyAWjeN18g 密碼:cttq,以及ffmpeg開發庫在vs環境編譯執行的部落格文章:http://blog.yundiantech.com/?log=blog&id=7,其實關於ffmpeg使用文章很多,但是大多是早些時期的文章,所以在這裡將ffmpeg庫最新版本在VS2017下編譯執行過程和大家分享,共同學習!

1.首先,需要到ffmpeg官網上下載dev和shared資源,其中dev中包含的是.h標頭檔案和lib庫,shared中包含的是dll檔案。可根據自己的實際環境下載相應的庫。我這裡是win64系統,下載ffmpeg最新穩定版本4.0.2。下載地址:

https://ffmpeg.zeranoe.com/builds/win64/,下載好的檔案目錄如下圖:

2.開啟VS2017建立新專案,這裡就不贅述了,將上圖中ffmpeg-4.0.2-win64-dev資料夾下lib資料夾和include資料夾複製到新建的專案目錄下,新建原始檔示例程式碼如下:

#include <iostream>
using namespace std;

extern "C"
{
#include "include/libavcodec/avcodec.h"
#include "include/libavformat/avformat.h"
#include "include/libswscale/swscale.h"
#include "include/libavdevice/avdevice.h"
}
///由於我們建立的是C++的工程
///編譯的時候使用的C++的編譯器編譯
///而FFMPEG是C的庫
///因此這裡需要加上extern "C"
///否則會提示各種未定義

int main()
{
	//這裡簡單的輸出一個版本號
	cout << "Hello FFmpeg!" << endl;
	av_register_all();
	unsigned version = avcodec_version();
	cout << "version is:" << version;
	return 0;
}

3.配置標頭檔案和依賴庫路徑

右鍵專案-屬性-配置屬性-C/C++-常規-附加包含目錄:新增include資料夾路徑,即包含標頭檔案目錄;右鍵專案-屬性-配置屬性-連結器-常規-附加庫目錄:新增lib資料夾路徑,即定位lib庫;右鍵專案-屬性-配置屬性-連結器-輸入-附加依賴項:新增lib檔名。

4.在VS2017中除錯執行程式,跳出視窗提示“無法啟動此程式,因為計算機中丟失...”,這時候需要將ffmpeg-4.0.2-win64-shared資料夾中bin目錄下的所有dll檔案複製到專案exe檔案所屬目錄下(一般在解決方案--x64-debug目錄下),再次回到VS中除錯執行,就不會出錯了。