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。下載地址:
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中除錯執行,就不會出錯了。