一、ffmpeg下载
ffmpeg源码可在其官网上下载,网址:https://ffmpeg.zeranoe.com/builds/
在官网上从左到右选择版本和系统,然后点击右侧的static,shared和dev,分别下载到本地。
二、解压ffmpeg
将下载下来的三个包分别解压,并分别对应命名为static,shared,dev(重新命名是为了后面配置简化)。之后,将这三个文件夹复制到自己指定的目录下,我的是D盘的ffmpeg文件夹下。
三、配置环境变量
在系统环境path中加入一下类似的路径,只需配置shared的即可:
四、建立QT工程
然后如图将之前解压的dev下的lib和include两个文件夹拷贝到新建项目下,修改QT工程的pro文件即可:
pro中添加如下代码:
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
main.cpp实现如下:
#include <iostream>
using namespace std;
#define __STDC_CONSTANT_MACROS
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>
}
///由于我们建立的是C++的工程
///编译的时候使用的C++的编译器编译
///而FFMPEG是C的库
///因此这里需要加上extern "C"
///否则会提示各种未定义
int main()
{
//这里简单的输出一个版本号
cout << "Hello FFmpeg!" << endl;
// av_register_all();
// avcodec_register_all();
// avdevice_register_all();
unsigned version = avcodec_version();
cout << "version is:" << version;
return 0;
}
运行结果: