作为Qt开发人员,音视频是离不开的一道坎,现在我遇上了,开始记录我使用FFmpeg学习并使用的记录,希望为后来的QT开发者一个参考。
环境:Qt Creator5.12 + FFmpeg4.2 + Windows10
第一节-Qt5.12搭建FFmpeg4.2
在百度搜索时,因为FFmpeg官网的更新,许多以static,shared,dev的下载方式宣布时代终结。
注:上面这张是直接保存别人的,并非自己截图的
所以我只能另寻办法,在不停搜索中,我发现了这个网站,里面有一些看起来还不错的资源下载(因为我只下载了FFmpeg,其他没去注意看),从中下载了 FFmpeg 4.2.1 vs2017 32位和64库及示例程序。
将其解压到一个文件位置上,bin文件夹里和lib文件夹里各有分类,分别是win32和win64,具体用哪个看自己需要哪个。
我用的Qt Creator mingw32,所以我都用win32的版本。
接下来要在环境变量->系统变量中把bin文件夹写进去,据大神说弄了这个切记要重启。
完成后就是正戏了,打开Qt新建个项目,Qt Widget的就行
#pro文件里,要注意,-l后面不接空格
INCLUDEPATH += E:/file/ffmpeg/include
LIBS += -L E:/file/ffmpeg/lib/win32/ -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswscale -lswresample
//.h文件,因为FFmpeg是C语言文件,所以需要使用extern "C"来跟电脑说一声
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>
}
自己在ui界面上随便拉两个textEdit,不用改名
//.cpp文件的构造函数
ui->textEdit->append(avcodec_configuration());
unsigned version=avcodec_version();
QString ch=QString::number(version,10);
ui->textEdit_2->append(ch);
主要就上面这三行,如果你的环境搭载成功了,就会出现
只要你不出现程序异常结束,那就说明你第一节内容成功了,若是出现程序异常,说明你的环境变量配置还没好,重启一次电脑可以解决。
本文参考自foxmoke的博客。
在我弄好后,我又发现了一篇FFmpeg官网更新后qt与ffmpeg环境搭载的博客,因为我已经完成了,就不作深究(工作较急),如果这篇博客无法成功可以看看他的
记一件小事:在最后一步显示时,我试过出现了程序异常结束,我迷惑了一下,在显示textEdit的代码前后中间各加上了qDebug打印提示信息,结果成功运行了,再把qDebug删掉也一样可以了?