正版资源【夏曹俊】C++编程FFMpegSDK美颜直播推流实战- 基于qt5,opencv视频课
这套课程的核心不是讲 Qt5 或 OpenCV 的入门 API,而是把「采集 → 解码 → 美颜 → 编码 → 推流」这条完整的直播链路用 C++ 串起来。Qt5 在这里承担界面与事件循环的角色,OpenCV 负责图像处理,真正干活的是 FFmpeg SDK。如果你的目标是搞清楚一个可用的 RTMP
这套课程的核心不是讲 Qt5 或 OpenCV 的入门 API,而是把「采集 → 解码 → 美颜 → 编码 → 推流」这条完整的直播链路用 C++ 串起来。Qt5 在这里承担界面与事件循环的角色,OpenCV 负责图像处理,真正干活的是 FFmpeg SDK。如果你的目标是搞清楚一个可用的 RTMP 推流端是怎么搭出来的,这份资料适合边看边对着源码改,而不是只当视频刷一遍。
技术栈的分工要先理清
很多人在看这类课时容易混掉三者的边界,结果代码一改就崩。建议先建立一张心智图:FFmpeg 的AVFormatContext、AVCodecContext、AVFrame、AVPacket这一套负责解封装、解码、编码和输出;OpenCV 的Mat只作为中间图像容器,用来叠加磨皮、美白、滤镜等处理;Qt5 则用信号槽把摄像头采集、按钮控制、画面预览这些 UI 事件分发出去。理清「谁管时间戳、谁管像素、谁管线程」,后面调 bug 会省很多时间。
项目结构与可复用模块
这门课的价值在于它给了一条能跑通的最小工程骨架,而不是零散的知识点。拆开看,大致能沉淀出几类可复用单元:设备采集层负责取原始帧并控制帧率;解码与颜色转换层处理 YUV 与 RGB 之间的转换,这是美颜能否生效的前提;美颜处理层把 OpenCV 的滤波、双边、锐化等算子封装成独立函数,方便替换;编码与推流层管理AVFrame的 pts 设置、码率控制和 RTMP 输出。你在自己项目里可以把这几层直接抽出来,替换掉 UI 部分继续用。
时间戳与音视频同步是难点
课程里专门讲到根据设置给AVFrame赋输入 pts,这一步是直播能不能被服务端正常接收的关键。pts/dts 设错,画面会卡顿、加速或者直接被播放器丢掉。结合读取一帧视频、解码、颜色转换的源码分析,你能看到数据从输入到输出的完整形态变化。建议把这几段代码单独跑一遍,打印每一帧的时间戳和大小,比看视频更能记住。
怎么用这份资料自学
- 先自己搭一遍 Qt5 + FFmpeg + OpenCV 的编译环境,把依赖链接跑通,再进入具体章节。
- 按「采集—解码—美颜—编码—推流」的顺序分阶段验证,每完成一段就用本地文件或播放器测试输出,不要等全部写完再调。
- 把美颜参数、码率、分辨率做成可配置项,观察不同设置对延迟和画质的影响,这比照抄参数更有收获。
- 遇到崩溃优先查内存与线程:FFmpeg 的帧缓冲释放、OpenCV 的
Mat引用计数、推流线程与 UI 线程的交互,是这类工程最常见的坑。
整体来看,这份资料偏向工程实践,需要你已有 C++ 基础和一定的音视频概念。它不是从零讲语法的教程,更适合当作一个可以对照修改的推流端参考实现:先跑通,再拆解,最后把可复用的模块搬进自己的项目里。
【夏曹俊】C++编程FFMpegSDK美颜直播推流实战- 基于qt5,opencv视频课
Qt5+Opencv实现美颜直播推流
编辑点评
实战性强,深入讲解美颜直播推流技术,适合有C++基础并希望学习移动端直播开发的技术人员。
⭐ 编辑推荐
本课程由夏曹俊老师主讲,通过Qt5和Opencv技术,深入讲解美颜直播推流的全过程,从环境搭建到代码实现,实战性强。
✨ 课程亮点
课程目录
课程目录68 集
- 【夏曹俊】C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课资料.png [493.5 KB]
- 5-07、视频帧编码并根据设置AVFrame的输入pts_ev.mp4 [28.5 MB]
- 4-05、读取一帧视频接口讲解和源码分析,分析读取解码和颜色转换过程_ev.mp4 [17.7 MB]
- 4-04、VideoCapture打开摄像头接口讲解和源码分析_ev.mp4 [12.8 MB]
- 1-03、直播rtmp协议分析_ev.mp4 [17.1 MB]
- 4-03、遍历修改连续的Mat图像空间_ev.mp4 [19.2 MB]
- 5-05、查找编码器并创建编码器上下文_ev.mp4 [24.4 MB]
- 5-02、基于opencv采集rtsp流并使用异常处理失败流程_ev.mp4 [35.2 MB]
- 4-01、opencv源码在windows下载编译安装_ev.mp4 [14.4 MB]
- 5-01、opencv播放rtsp海康摄像头和播放系统摄像头_ev.mp4 [30.4 MB]
- 7-05、XAudioRecord集成数据基类重构_ev_ev.mp4 [25.1 MB]
- 8-09、QT直播推流项目完成界面设计_ev_ev.mp4 [33.9 MB]
- 5-14、完成了视频编码接口并重构rtsp_to_rtmp代码_ev.mp4 [28.5 MB]
- 7-04、XDataThread数据处理线程类创建并实现_ev_ev.mp4 [29.9 MB]
- 7-07、完成音视频推流封装处理未同步_ev_ev.mp4 [39.4 MB]
- 6-10、封装音频编码器设置接口重构视频编码器接口_ev.mp4 [25.0 MB]
- 6-05、音频重采样空间分配并完成重采样_ev_ev.mp4 [25.5 MB]
- 8-02、双边滤波磨皮算法调用并测试性能_ev_ev.mp4 [32.3 MB]
- 7-03、封装视频录制接口完成初始化和关闭接口_ev_ev.mp4 [29.8 MB]
- 3-04、打开rtmp推流输出并从文件读取音视频帧_ev.mp4 [41.9 MB]
- 2-04、nginx-rtmp直播和直播状态监听配置ffplay播放_ev.mp4 [25.7 MB]
- 1-02、直播推流流程分析讲解_ev_ev.mp4 [11.2 MB]
- 5-15、创建XRtmp接口类完成封装器接口_ev.mp4 [59.4 MB]
- 4-02、windows 上创建opencv示例项目_ev.mp4 [21.0 MB]
- 8-03、直播框架添加图像过滤XFilter接口并实现双边滤波磨皮类_ev_ev.mp4 [39.9 MB]
- 3-07、推流基于rtsp协议的大华海康相机_ev.mp4 [61.6 MB]
- 8-06、完成了XController音视频录制模块初始化_ev_ev.mp4 [37.0 MB]
- 7-01、封装音频XAudioRecord初始化和关闭接口_ev_ev.mp4 [29.1 MB]
- 6-12、完成音频推流接口XRtmp封装重构音频推流_ev_ev.mp4 [34.6 MB]
- 5-08、创建封装器添加视频AVStream并设置参数_ev.mp4 [28.8 MB]
- 8-01、磨皮双边滤波算法参数说明_ev_ev.mp4 [18.1 MB]
- 2-01、直播服务器介绍crtmpserver编译运行(ubuntu)_ev.mp4 [31.1 MB]
- 5-13、完成视频编码器初始化InitVideoCodec接口封装_ev.mp4 [23.1 MB]
- 8-04、直播框架添加美颜磨皮_ev_ev.mp4 [21.3 MB]
- 6-01、QT5开发环境准备_ev.mp4 [25.0 MB]
- 6-03、QT音频录制接口讲解并编写录制音频程序_ev.mp4 [24.8 MB]
- 5-06、编码器参数配置(包括打开多线程编码)并打开编码器_ev.mp4 [36.5 MB]
- 5-03、像素格式转换(RGBToYUV)上下文创建配置和清理_ev.mp4 [41.5 MB]
- 1-01、课程介绍_ev_ev.mp4 [20.0 MB]
- 6-09、音频重采样XMediaEncode重采样接口封装代码重构_ev.mp4 [51.0 MB]
- 7-10、音视频同步二解决音频有相同pts情况_ev_ev.mp4 [24.5 MB]
- 5-11、完成InitScale初始化像素格式转换接口_ev.mp4 [20.3 MB]
- 7-09、音视频同步时间计算代码分析第一部分_ev_ev.mp4 [68.9 MB]
- 6-02、音频基础知识音频参数分析_ev.mp4 [25.2 MB]
- 3-02、初始化封装和网络库打开音视频流并打印调试信息_ev.mp4 [41.6 MB]
- 3-01、ffmpegSDK开发环境准备,第一个ffmpeg项目创建_ev.mp4 [41.2 MB]
- 6-07、音频的pts运算音频数据编码测试_ev_ev.mp4 [17.5 MB]
- 6-06、音频编码器创建和参数设置_ev_ev.mp4 [23.3 MB]
- 2-03、nginx-rtmp源码下载、编译运行(ubuntu)_ev.mp4 [25.3 MB]
- 5-10、XMediaEndcode工厂生产方法创建_ev.mp4 [21.0 MB]
- 7-06、加入视频编码器和流_ev_ev.mp4 [27.7 MB]
- 6-04、音频重采样上下文创建和配置_ev.mp4 [27.0 MB]
- 3-05、AVPacket的pts运算并完成帧推送使用vlc测试_ev.mp4 [29.5 MB]
- 5-12、完成RGBToYUV接口封装并重构代码_ev.mp4 [30.4 MB]
- 7-02、完成音频录制接口,录制缓冲队列处理_ev_ev.mp4 [50.4 MB]
- 5-09、打开推流IO,发送封装头,计算pts完成帧推流_ev.mp4 [34.6 MB]
- 5-04、rgb转yuv空间分配和转换函数调用_ev.mp4 [47.5 MB]
- 2-02、下载ffmpeg工具推流并使用功能vlc拉流播放测试_ev.mp4 [20.8 MB]
- 8-05、XRtmpStreamer项目框架架构(类图)讲解_ev_ev.mp4 [12.1 MB]
- 7-11、音视频同步三完成同步_ev_ev.mp4 [18.6 MB]
- 3-06、根据pts和系统记时控制推流速度_浏览器flash播放直播流_ev.mp4 [39.8 MB]
- 6-08、完成音频推流并测试_ev.mp4 [31.4 MB]
- 7-08、音频推流同步策略分析_ev_ev.mp4 [17.1 MB]
- 8-10、完成了qt项目直播推流_ev_ev.mp4 [44.4 MB]
- 6-11、完成音频编码接口封装和代码重构_ev_ev.mp4 [22.3 MB]
- 8-08、XController推流数据线程完成_ev_ev.mp4 [48.6 MB]
- 8-07、完成XController中的编码封装推流模块初始化_ev_ev.mp4 [47.5 MB]
- 3-03、完成输出音视频流配置信息,使用ffmpeg新版本属性_ev.mp4 [45.6 MB]
适合人群
- C++开发者
- 移动端直播开发人员
- 对美颜直播技术感兴趣的学习者
🎯 学习收获
- 掌握Qt5和Opencv在移动端的应用
- 实现美颜直播推流功能
- 提升直播开发技能
🎉 祝您学习愉快!




