尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Qt+MinGW32+Windows+FFmpeg集成指南:RTSP预览编译踩坑实录

发布时间:2026/9/3 4:36:35

资讯中心
01
ARTICLE

Qt+MinGW32+Windows+FFmpeg集成指南:RTSP预览编译踩坑实录

Qt+MinGW32+Windows+FFmpeg集成指南:RTSP预览编译踩坑实录
简介这是一套基于Qt与MinGW32工具链面向Windows平台的FFmpeg RTSP视频流播放示例工程主要帮助开发者快速掌握在Qt中集成FFmpeg并实时显示RTSP流的方法。项目代码精简在Windows下可直接编译通过运行且视频响应速度明显优于VLC、QTAV等常见播放方案适合需要自研轻量级视频预览或监控界面的Qt中级开发者参考。压缩包共103个文件约11.58MB其中包含81个C头文件、4个cpp源文件、5个FFmpeg动态库及5个静态导入库并附带工程文件、UI界面、图标、样式表和说明文档结构清晰便于定位。示例支持三通道同步显示同一视频流可单击截图按钮把画面保存至最后通道双击单通道可最大化显示。需要注意打开工程后务必取消影子构建若切换到Linux则需替换对应FFmpeg库文件。资源已有1163人学习具备较高的实用参考价值。 前一阵子我把一个 Windows 上的 RTSP 摄像头预览小工具换到新电脑重新编译Qt 是现成的MinGW 也是现成的结果 FFmpeg 一接进来就各种亮红灯。要说功能代码本身并不复杂真正折腾人的是 Qt MinGW32 Windows FFmpeg 这套组合里的版本、位数、链接方式必须严丝合缝。下面这套环境从报错报到麻木到最终跑通的完整记录给同样正在搭这个组合的人一个参考。适合刚把 Qt 装好、正打算集成 FFmpeg 做 RTSP 拉流播放或者已经卡在某一个编译错误上的朋友。1. 先拆一下“保证编译可用”到底卡在哪1.1 网上的轮子很多装上却转不起来搜这个关键词的时候你会看到大量教程。但实际照着做很多人会卡在同一个地方教程用的是 MSVC 版的 Qt你装的是 MinGW 版教程在 Linux 上演示你在 Windows 上搞教程默认你会自己编译 FFmpeg你只是想要一个能用的库文件。这些差异叠加起来就是“我明明按照步骤做了为什么还是编译不过”。我见过的最典型翻车三连装错了 Qt 工具链。Qt 安装器里组件很多有人图省事勾了 MSVC 2019结果后面用 MinGW 语法写.pro链接阶段大量报错。FFmpeg 位数和 Qt 不一致。Qt 是 32 位FFmpeg 下的是 win64 包链接时出现各种undefined reference而且报错信息不会直接告诉你“位数不匹配”。编译过了运行却提示缺avformat-*.dll。这是库路径和运行时 DLL 的问题跟代码一点关系都没有但足够让人怀疑人生。这些现象说明一件事“编译可用”不是“我代码写完了”的意思而是整个工具链、依赖库、运行环境都对齐了。等这几个环节全部理顺后面的开发反而很顺。1.2 “可用”的三重匹配位数、工具链、API我把这套组合拆成三个必须匹配的维度位数匹配Qt 编译出来的程序是多少位FFmpeg 库就必须是多少位。MinGW32 配 win32 库MinGW64 配 win64 库混用必挂。工具链匹配MinGW 使用 GCC 的库格式通常是.a或者.dll.aMSVC 使用.lib。这两种格式不能混着链接。很多人从 MSVC 教程里复制了avformat.lib的写法拿到 MinGW 下自然找不到。API 版本匹配FFmpeg 的大版本更新会调整接口。比如老教程里的avcodec_decode_video2在新版本里已经移除了av_register_all在 4.0 之后变成了空操作。你用的头文件和库版本必须和你参考的代码对得上。理解了这三条后面每一步都不会莫名其妙。接下来我按顺序讲怎么把这套组合配稳妥。2. 版本选型与安装锁定组合是省时间的开始2.1 Qt与MinGW工具链建议锁5.15.2 MinGW 8.1.0如果你没有特殊理由我建议直接锁Qt 5.15.2 LTS Qt 安装器自带的 MinGW 8.1.0。这套组合网上资料最多踩坑别人都踩完了哪怕是五年前的教程大部分也适用。在 Qt 官方安装器里勾选组件时除了要选Qt 5.15.2下面的MinGW 8.1.0 32-bit或者64-bit还要记得展开Tools节点勾选对应的MinGW 8.1.0编译器工具链。很多新手只勾了 Qt 库没勾编译器打开 Qt Creator 后发现 Kit 列表里没有任何可用的工具链这就是原因。这里要特别说明标题里的 MinGW32。如果你说的 MinGW32 是指 32 位工具链那就在安装器里明确选MinGW 8.1.0 32-bit如果只是大家叫顺口的“MinGW 环境”那 64 位也一样用。下面的流程两者通用关键是后面位数必须自洽。2.2 FFmpeg的Windows二进制从哪下载、选哪个包FFmpeg 官方只提供源码Windows 下一般用社区预编译包。我常用的是 BtbN 的 GitHub releases或者 gyan.dev 的构建。以 BtbN 为例下载时会看到类似这样的命名ffmpeg-master-latest-win32-gpl-shared.zipffmpeg-master-latest-win64-gpl-shared.zip注意两个关键词win32/win64决定位数shared决定包结构。我建议选shared而不是static。shared 包解压后有三个目录include头文件、lib导入库、bin运行时 DLL。编译时用前两个运行时依赖第三个。static 包只有一个超大 exe开发期不好用分发时反而是一种选择。版本方面我推荐 FFmpeg5.1.x 或 6.1.x。这两个版本 API 相对成熟本文下面给的代码在这两个版本上都能编译通过。不建议一上来就用 7.x 最新版新版本可能有接口调整容易把时间浪费在无关的兼容性问题上。2.3 32位还是64位这个坑必须第一时间排除为了不重蹈“折腾两天最后发现位数不对”的覆辙先做一次检查。打开命令行进入 Qt 自带的 MinGW bin 目录执行gcc -dumpmachine输出i686-w64-mingw32代表 32 位输出x86_64-w64-mingw32代表 64本文还有配套的精品资源点击获取
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。