前言

之前我们进行了 FFmepg编译以及在 Visual Studio引用 FFmpeg 库:FFmpeg入门及编译本文记录在 QT 环境搭建 FFmepg 工程

QT 环境安装这里不再赘述了,网上资源很多。


ffmpeg+QT开发环境搭建

1、新建 QT 工程

在这里插入图片描述

2、拷贝所需的 lib 文件头文件

将之前编译lib 文件以及整个 include 目录下的文件拷贝到 QT 项目目录
在这里插入图片描述
下图所示
在这里插入图片描述

2、拷贝所需的 dll 动态库文件

然后将之前编译bin 文件加的所有 .dll 动态复制qt 编译后的 debug文件夹下。
在这里插入图片描述
下图所示
在这里插入图片描述

3、修改 QT 项目的主配置文件 (.pro 文件)

修改 QT 项目的主配置文件 (.pro 文件),指定头文件lib 库文件路径新增下面内容

INCLUDEPATH += $$PWD/include

LIBS += $$PWD/lib/avcodec.lib  
        $$PWD/lib/avdevice.lib  
        $$PWD/lib/avfilter.lib  
        $$PWD/lib/avformat.lib  
        $$PWD/lib/avutil.lib  
        $$PWD/lib/swresample.lib  
        $$PWD/lib/swscale.lib

在这里插入图片描述

4、验证测试

打印 av_version_info版本作为测试方法,将下面的程序复制到 main.cpp

```c
#include "mainwindow.h"

#include <QApplication&gt;

#include <QDebug&gt;   // 利用打印函数

// ffmpeg 是纯 C 语言代码,在 C++ 当中不能直接进行 include
extern "C" {
#include <libavcodec/avcodec.h>
}


int main(int argc, char *argv[])
{
    qDebug() << "av version is:"<< av_version_info();

    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

5、解决运行时的报错

运行时出现了如下报错

D:ProjectQt_Projectbuild-ffmpeg_test-Desktop_Qt_5_14_2_MinGW_32_bit-Debug/…/ffmpeg_test/main.cpp:15: undefined reference to `av_version_info
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [Makefile.Debug:72: debug/ffmpeg_test.exe] Error 1

在这里插入图片描述
最后找到原因原来是项目选择了 32 位的构建套件,而 FFmpeg 库是 64 位的!将项目改为 64 位后终于解决
在这里插入图片描述
运行成功界面如下,会打印出:av version is: N-112010-g1a87a9d82a
在这里插入图片描述


我的qq:2442391036,欢迎交流


原文地址:https://blog.csdn.net/qq_41839588/article/details/134674023

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22546.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注