ffmpeg之QT开发环境搭建

文章目录

  • 前言
  • ffmpeg+QT开发环境搭建
    • [1、新建 QT 工程](#1、新建 QT 工程)
    • [2、拷贝所需的 lib 文件和头文件](#2、拷贝所需的 lib 文件和头文件)
    • [2、拷贝所需的 dll 动态库文件](#2、拷贝所需的 dll 动态库文件)
    • [3、修改 QT 项目的主配置文件 (.pro 文件)](#3、修改 QT 项目的主配置文件 (.pro 文件))
    • 4、验证测试
    • 5、解决运行时的报错

前言

之前我们进行了 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 库文件路径,新增下面内容:

c 复制代码
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 中

cpp 复制代码
```c
#include "mainwindow.h"

#include <QApplication>

#include <QDebug>   // 利用打印函数

// 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:\Project\Qt_Project\build-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-make1: *** Makefile.Debug:72: debug/ffmpeg_test.exe Error 1

最后找到原因:原来是项目选择了 32 位的构建套件,而 FFmpeg 库是 64 位的!将项目改为 64 位后终于解决。

运行成功界面如下,会打印出:av version is: N-112010-g1a87a9d82a


我的qq:2442391036,欢迎交流!


相关推荐
jike_20267 小时前
iPhone采访录音同时拍现场照片的APP:图片音频同步记录实测
笔记·智能手机·音视频·语音识别
小猴子爱上树7 小时前
跨境电商翻译工具推荐:批量图片翻译、视频字幕翻译、智能抠图一站式搞定
人工智能·python·音视频
林澈在路上8 小时前
AI翻唱软件哪个好 2026国产AI写歌工具对比推荐
大数据·人工智能·深度学习·github·aigc·音视频·音频
阿童木写作9 小时前
跨马翻译:AI批量图片翻译与视频字幕翻译工具推荐
人工智能·python·音视频
Dovis(誓平步青云)10 小时前
折叠屏悬停看视频,上半屏和下半屏应该各做什么
android·java·服务器·开发语言·安全·音视频
小小龙学IT13 小时前
Qt 元对象系统(Meta-Object System)深度解析:从 MOC 到反射式编程
数据库·qt
小王C语言14 小时前
QT 基础:QT SDK 下载、配置、新建项目、项目代码解释
开发语言·qt
敢敢のwings15 小时前
Wan2.2 模型系统解读:从视频扩散到 WAM 世界模型模块
音视频
小猴子爱上树16 小时前
跨境电商AI批量图片翻译工具,视频字幕翻译免费试用
人工智能·python·音视频
AI服务老曹16 小时前
车牌识别算法接入AI视频分析平台的流程和误报优化
人工智能·算法·音视频