1.获取FFmpeg
https://ffmpeg.zeranoe.com/builds/ 这里面有Windows的一些版本 可以根据自己机器编译器位数来下载
其中有三个类型
Static 顾名思义就是静态库版本了。
Shared则是动态库版本。
Dev则是提供给开发者用的Lib文件。
首先下载dev库和shared库,然后用QT随便建一个项目,我创建的是纯C++工程
然后解压dev包到工程目录下,将文件夹名字改为ffmpeg,
Qt Creator中修改工程配置文件 ***.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;
extern
"C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#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;
}
|
然后编译,会报错,点进去发现common.h文件的问题
把这两部分代码加上就ok了
编译运行->发现什么输出也没有, 只有一个黑色的框 (因为运行的时候缺少dll库)
这时候把shared包解压,将bin目录下的.dll文件拷贝到 debug文件夹中(这里面有你刚才编译生成的.exe文件)
再次编译运行->显示正确