天天看點

一,QT中移植Ffmpeg環境搭建

1.首先下載下傳ffmpeg:下載下傳位址

一,QT中移植Ffmpeg環境搭建

2.選擇合适的版本,這裡我用的是:

一,QT中移植Ffmpeg環境搭建

3.解壓到QT的工程目錄,首先介紹下不同版本的含義

  • bin檔案夾:下面包含了ffmpeg.exe、ffplay.exe、ffprobe.exe三個可執行程式,沒有頭檔案和庫檔案。
  • lib檔案夾:包含了相關dll、lib等動态庫檔案。
  • include檔案夾 : 這個包含了頭檔案。
  • ffmpeg.exe: 用于轉碼的工具
  • ffplay.exe: 用于播放的工具
  • ffprobe.exe: 用于解析媒體檔案格式的工具

解壓之後的檔案處理:

将解壓後目錄下的include檔案夾,lib檔案夾拷貝到工程目錄下,最好建立一個檔案夾來存放。

一,QT中移植Ffmpeg環境搭建

如圖所示 

将 bin檔案夾下的除了*.exe檔案都拷貝程式生成的檔案夾下。

一,QT中移植Ffmpeg環境搭建

在QT工程中添加檔案路徑,包含頭檔案等,圖下圖所示:

一,QT中移植Ffmpeg環境搭建
一,QT中移植Ffmpeg環境搭建

 為了友善大家建構環境,放上源代碼:

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;
           

編譯運作,可以看到版本号被列印出來

一,QT中移植Ffmpeg環境搭建

 至此ffmpeg在QT上移植完成