博主的环境是win10 64 + VS2019 Debug X64 + ffmpeg-4.4-full_build-shared + Qt5.9.9(QtCreator4.11.0)
一、ffmpeg环境搭建 1.1下载ffmpeg-4.4-full_build-shared.7z下载链接:Builds - CODEX FFMPEG @ gyan.dev
1.2拷贝对应文件到工程目录下下载后解压,将bin目录下所有*.dll拷贝到可执行目录下,同时include和lib拷贝到工程目录下,如下图所示:
1.3配置VS2019工程项目【项目】——【属性】——【C/C++】——【常规】——【附加包含目录】
【项目】——【属性】——【C/C++】——【常规】——【SDL检查】
【项目】——【属性】——【链接器】——【常规】——【附加库目录】
【项目】——【属性】——【链接器】——【常规】——【附加依赖项】
加入lib库如下所示:
avcodec.lib avdevice.lib avfilter.lib avformat.lib avutil.lib postproc.lib swresample.lib swscale.lib1.4配置好后,在main.cpp加入如下代码:
#include1.5编译结果extern "C" { #include "libavformat/avformat.h" } int main() { av_register_all(); system("pause"); std::cout << "Hello World!n"; }
编译没报错,运行也正常,说明关联库成功。
二、配置vs2019上调用qt库 2.1下载qt嵌入vs2019的插件【扩展】——【管理扩展】,右上角搜qt,然后下载插件Qt Visual Studio Tools
2.2下载好后,点击如下
【扩展】——【Qt VS Tools】——【Options】,右上角搜qt,然后下载插件Qt Visual Studio Tools
版本选择自己安装的版本,博主安装的是5.9.9,path路径是选D:QtQt5.9.95.9.9msvc2017_64binqmake.exe ,如下图所示:
2.3此时qt在vs2019中的插件安装好了,可以创建qt widget项目先搜qt,然后选择Qt Widgets Application创建,接着除了选QWidget工程外,一路默认即可。
2.4创建完vs2019的qt工程,发现#include "ui_ffmpeg3.h"关联错误,此时C++17标准可消除【配置属性】——【常规】——【C++语言标准】,选“ISO C++17 标准 (/std:c++17)”。
2.5此时打开UI界面发现闪退,可以将UI界面默认用QtCreator打开即可即如下配置:
【右键ffmpeg.ui文件】——【打开方式】,在弹出框中选【添加】——【程序】,选择Qt安装Tools目录下的QtCreator目录下qtcreator.exe文件,即D:QtQt5.9.9ToolsQtCreatorbinqtcreator.exe,接着将其设置为默认打开即可。不过这好像也个弊端,就是不能通过UI界面在代码中创建槽函数。
至此,只需要将ffmpeg配置方式再在新创建的Qt工程配置一遍即可使用win10 64 + VS2019 Debug X64 + ffmpeg-4.4-full_build-shared + Qt5.9.9(QtCreator4.11.0)愉快的码代码了 ^_^。
下面是博主测试的一个简单demo
三、VS2019 + Qt5.9.9 + ffmpeg4.4简单demo 3.1VS2019创建一个Qt Widget工程ffmpeg3按照上述内容配置一遍ffmpeg,然后在UI界面拖入一个文本浏览器和按钮,如下图所示:
3.2 ffmpeg3.h、ffmpeg3.cpp、main.cpp三个文件代码ffmpeg3.h
#pragma once #include#include "ui_ffmpeg3.h" class ffmpeg3 : public QWidget { Q_OBJECT public: ffmpeg3(QWidget *parent = Q_NULLPTR); private: Ui::ffmpeg3Class ui; };
ffmpeg3.cpp
#include "ffmpeg3.h" #include//#pragma comment(lib,"avcodec.lib") //#pragma comment(lib,"avdevice.lib") //#pragma comment(lib,"avfilter.lib") //#pragma comment(lib,"avformat.lib") //#pragma comment(lib,"avutil.lib") //#pragma comment(lib,"postproc.lib") //#pragma comment(lib,"swresample.lib") //#pragma comment(lib,"swscale.lib") extern "C" { #include "libavformat/avformat.h" } ffmpeg3::ffmpeg3(QWidget *parent) : QWidget(parent) { ui.setupUi(this); av_register_all(); ui.textBrowser->setText(avcodec_configuration()); }
main.cpp
#include "ffmpeg3.h" #include3.3程序运行结果int main(int argc, char *argv[]) { QApplication a(argc, argv); ffmpeg3 w; w.show(); return a.exec(); }
由上所指,win10 64 + VS2019 Debug X64 + ffmpeg-4.4-full_build-shared + Qt5.9.9(QtCreator4.11.0)环境配置好了。
完结,散花 ~_~ 。
四、参考连接VS2019 c++配置FFmpeg
VS2019集成Qt



