vs2015+ffmpeg開發環境搭建
1.去官方下載ffmpeg 可參見:http://ffmpeg.zeranoe.com/builds/
包含三個版本:Static、Shared以及Dev
Static --- 包含3個應用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,體積都很大,相關的DLL已經被編譯到exe裏面去了。
Shared --- 除了ffmpeg.exe , ffplay.exe , ffprobe.exe之外還有一些DLL,exe體積很小,在運行時到相應的DLL中調用功能。
Dev --- 開發者(developer)版本,裏面包含了庫文件xxx.lib以及頭文件xxx.h,這個版本不含exe文件
2.開發者版本配置相關環境
把dev版本與share版本都下下來解壓,dev版本文件夾中的Include和lib目錄整個兒複製到VS項目目錄下,並在工程屬性中設置附加包含目錄:$(ProjectDir)include和附加庫目錄:$(ProjectDir)lib。
接着將share版本文件夾中bin目錄下對應的所有dll複製到項目路徑下,如下圖所示:
3.測試
在doc/examples目錄下複製metadata.c源文件到新建的"源.cpp"文件中,這是一個獨立的demo,作用是打印音視頻媒體文件基本信息。比如我們放一首音樂到工程目錄下,
接着嘗試運行該源文件,發現報錯!這是因爲我們的C++工程直接調用ffmpeg的C函數庫,導致C函數無法解析,此時用到extern “C”進行聲明即可,下面是聲明方式:
#ifndef INT64_C #define INT64_C(c) (c ## LL) #define UINT64_C(c) (c ## ULL) #endif
以及
#ifdef __cplusplus extern "C" { #endif /*Include ffmpeg header file*/ #include <libavformat/avformat.h> #include <libavcodec/avcodec.h> #include <libswscale/swscale.h> #include <libavutil/imgutils.h> #include <libavutil/opt.h> #include <libavutil/mathematics.h> #include <libavutil/samplefmt.h> //----代碼區--- #ifdef __cplusplus } #endif
將剛剛的那個mp3文件輸入工程項目中試試看能否運行,
如果能運行說明基本配置完成,後續還有一些東西需要配置,主要是針對用到的uint8_t、int64_t等數據類型。
4.如何使用static版本
4.1 配置與運行
配置系統環境path環境變量,加入ffmpeg.exe所在目錄如我的:
然後可以在命令符窗口直接調用ffmpeg.exe
4.2 ffmpeg.exe的使用
一個簡單的轉碼命令可以這樣寫:
ffmpeg -i input.avi -b:v 640k output.ts
詳情參考ffmpeg參數中文詳細解釋
詳細的使用說明(英文):http://ffmpeg.org/ffmpeg.html
4.3 ffplay.exe
ffplay是用於播放的應用程序。一個簡單的播放命令可以這樣寫:
ffplay test.avi
具體使用方法參考
: ffplay的快捷鍵以及選項
詳細的使用說明(英文):http://ffmpeg.org/ffplay.html
4.4 ffprobe.exe
ffprobe是用於查看文件格式的應用程序,詳細的使用說明(英文):http://ffmpeg.org/ffprobe.html