1.首先下載下傳ffmpeg:下載下傳位址
2.選擇合适的版本,這裡我用的是:
3.解壓到QT的工程目錄,首先介紹下不同版本的含義
- bin檔案夾:下面包含了ffmpeg.exe、ffplay.exe、ffprobe.exe三個可執行程式,沒有頭檔案和庫檔案。
- lib檔案夾:包含了相關dll、lib等動态庫檔案。
- include檔案夾 : 這個包含了頭檔案。
- ffmpeg.exe: 用于轉碼的工具
- ffplay.exe: 用于播放的工具
- ffprobe.exe: 用于解析媒體檔案格式的工具
解壓之後的檔案處理:
将解壓後目錄下的include檔案夾,lib檔案夾拷貝到工程目錄下,最好建立一個檔案夾來存放。
如圖所示
将 bin檔案夾下的除了*.exe檔案都拷貝程式生成的檔案夾下。
在QT工程中添加檔案路徑,包含頭檔案等,圖下圖所示:
為了友善大家建構環境,放上源代碼:
INCLUDEPATH += $$PWD/ffmpeg/include
LIBS += $$PWD/ffmpeg/lib/avcodec.lib\
$$PWD/ffmpeg/lib/avdevice.lib\
$$PWD/ffmpeg/lib/avfilter.lib\
$$PWD/ffmpeg/lib/avformat.lib\
$$PWD/ffmpeg/lib/avutil.lib\
$$PWD/ffmpeg/lib/postproc.lib\
$$PWD/ffmpeg/lib/swresample.lib\
$$PWD/ffmpeg/lib/swscale.lib
extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavdevice/avdevice.h>
#include <libavformat/version.h>
#include <libavutil/time.h>
#include <libavutil/mathematics.h>
}
extern "C"
{
#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
#include<stdint.h>
#endif
}
在main.c檔案中添加列印版本資訊,确定環境建構可以正常使用
//輸出FFmpeg版本測試環境部署是否成功
avcodec_configuration();
unsigned version = avcodec_version();
qDebug()<<"version: "<<version;
編譯運作,可以看到版本号被列印出來
至此ffmpeg在QT上移植完成