QT-FFMPEG 环境搭建
1.QT Creator 4.8.2 + MinGW 32bit
准备阶段
1.QT Creator 4.8.2 + MinGW 32bit
2. FFMPEG 4.1.1 win32 share 和 dev
下载地址: https://ffmpeg.zeranoe.com/builds/
Document address:
关于 static share dev 三个版本的介绍
Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。
Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。
Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不包含exe文件。
动手阶段
下载并且安装qt creator + mingw 32bit, 下载好ffmpeg.
创建qt工程
为了简单使用,建立一个名为 ffmpeg_create 的 qt console application 工程
导入ffmpeg到qt工程
1.把 ffmpeg dev 文件夹(ffmpeg-4.1.1-win32-dev) 更名为 ffmpeg_32,放入到与 qt工程文件(ffmpeg_create.pro)同级目录下.
2.在qt工程文件(ffmpeg_create.pro)中加入ffmpeg的链接.
#原文:https://blog.csdn.net/muyuyuzhong/article/details/82747760
win32 {
INCLUDEPATH += $$PWD/ffmpeg_32/include
LIBS += $$PWD/ffmpeg_32/lib/avformat.lib \
$$PWD/ffmpeg_32/lib/avcodec.lib \
$$PWD/ffmpeg_32/lib/avdevice.lib \
$$PWD/ffmpeg_32/lib/avfilter.lib \
$$PWD/ffmpeg_32/lib/avutil.lib \
$$PWD/ffmpeg_32/lib/postproc.lib \
$$PWD/ffmpeg_32/lib/swresample.lib \
$$PWD/ffmpeg_32/lib/swscale.lib
}
3.在 main.c 文件中加入代码并且验证ffmpeg是否正常工作.
#include <QCoreApplication>
#include <QDebug>
extern "C"
{
//原文:https://blog.csdn.net/u011831771/article/details/78536362
#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>
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<"This is ffmpeg environment create 2019-3-30 00:36:22 \n";
qDebug()<<avcodec_version();
return a.exec();
}
此时编译执行后得到黑色窗口,qDebug并未执行成功,说明程序出现问题:
出现这个的原因是, ffmpeg dev 仅用于开发使用,编译生成软件的时候需要 ffmpeg 的动态链接库,所以在 debug 程序的文件夹内加入 ffmpeg share/bin 内容
这时候 debug 文件夹变为:
此时在编译运行,则可以得到一个输出结果:
至此,动手阶段结束.
总结
使用 ffmpeg 搭建环境有亮点需要注意:
1.区分 ffmpeg static share dev 的作用, 编写代码的时候使用的是 dev, 编译软件后使用的是 share.
2.把 ffmpeg 加入到 qt 工程中,有使用绝对地址和相对地址的办法,上文使用的是相对地址完成,相对地址有利于多人合作编写.
代码下载
GITEE: https://gitee.com/ourran/QT-FFMPEG-DEMO
参考例子
1.QT+FFMPEG4.0 Windows开发环境搭建 https://blog.csdn.net/muyuyuzhong/article/details/82747760
3.Qt与FFmpeg联合开发指南(一)——解码(1):功能实现 https://www.cnblogs.com/learnhow/p/8970019.html