getfromcode

C++编程FFMpeg(qt5+opencv)实时美颜直播推流实战视频课程|夏

后端开发
课程简介

工程架构与核心模块解析 本课程聚焦于 C++ 在实时音视频处理领域的深度应用,旨在解决从原始数据采集到网络推流的完整链路工程难题。对于具备一定 C++ 基础的开发者而言,本课程的价值在于跳出单纯 API 调用的层面,深入理解 FFmpeg、OpenCV 与 Qt5 三者协同工作的底层逻辑。课程首先拆解了数据采集层,重点讲解如何利用 Qt5 捕获系统音频流,…

已有 0 人浏览 发布 2026-10-08 更新 2026-10-07

工程架构与核心模块解析

本课程聚焦于 C++ 在实时音视频处理领域的深度应用,旨在解决从原始数据采集到网络推流的完整链路工程难题。对于具备一定 C++ 基础的开发者而言,本课程的价值在于跳出单纯 API 调用的层面,深入理解 FFmpeg、OpenCV 与 Qt5 三者协同工作的底层逻辑。课程首先拆解了数据采集层,重点讲解如何利用 Qt5 捕获系统音频流,并通过 OpenCV 支持 RTSP 及系统相机进行视频采集。这一阶段的核心难点在于厘清音视频原始数据的格式转换——即如何将 YUV 或 RGB 图像数据与 PCM 音频数据标准化,为后续编码奠定基础。

在核心的编码与美颜环节,课程详细剖析了 H.264 视频编码与 AAC 音频编码的参数配置,这是直接影响推流延迟、清晰度及带宽占用的关键因素。特别值得一提的是双边滤波美颜算法的实现,这并非简单的滤镜叠加,而是涉及图像处理算法在实时流中的性能优化与质量平衡。随后,处理后的数据被封装为 FLV 格式,并通过 RTMP 协议进行推流。整个路径展示了 C++ 在高并发、低延迟多媒体处理上的优势,适合希望从应用层下沉至系统层的后端工程师对照源码实践。

多线程设计与全链路落地能力

一个高可用的直播系统离不开严谨的线程设计。课程引入多线程处理技术,将采集、美颜处理、编码、封装及网络推流划分至不同线程,并通过经典设计模式协调各模块交互。这是本项目最具工程参考价值的部分:读者可以学习到如何使用生产者-消费者模型解决音视频同步问题,以及如何避免多线程环境下的资源竞争与死锁。这对于构建高性能后端服务的开发者来说,是一份极佳的实战蓝本。

在服务端部署方面,课程覆盖了 Nginx-RTMP 与 CRtmpServer 两种主流直播服务器的配置方法,帮助开发者搭建本地测试环境以验证推流稳定性。结合 FFplay 命令行播放与 HTML 前端播放方案,形成从推端到拉端的完整闭环。建议学习者先梳理整体类图与数据流向,再逐模块对比运行效果。完成本课程后,你将能够独立开发基于 C++ 的高性能美颜直播推流应用,掌握从底层采集、算法处理到服务端部署的全链路工程能力。

课程介绍

1 基于c++编程,掌握录制视频(使用opencv支持rtsp和系统相机)录制音频(qt5)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮双边滤波美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术各个模块交互。 2 掌握nginx-rtmp和crtmpserver的直播服务器配置。 3 课程讲解ffplay和html的flash插件播放直播 4 基于c++语言的一些设计模式完成直播美颜推流项目。

课程目录

4.png (180.29 KB, 下载次数: 0) 2024-7-28 13:02 上传 课程介绍: 1 基于c++编程,掌握录制视频(使用opencv支持rtsp和系统相机)录制音频(qt5)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮双边滤波美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术各个模块交互。 2 掌握nginx-rtmp和crtmpserver的直播服务器配置。 3 课程讲解ffplay和html的flash插件播放直播 4 基于c++语言的一些设计模式完成直播美颜推流项目。 课程目录: 第一章:课程介绍和基础知识 1. 课程介绍,学员群1323236937:45 2. 直播推流流程分析讲解 6:39 3. 直播rtmp协议分析10:08 第二章: 直播服务器讲解和配置 1. 直播服务器介绍crtmpserver编译运行(ubuntu) 12:57 2. 下载ffmpeg工具推流并使用功能vlc拉流播放测试 8:05 3. nginx-rtmp源码下载、编译运行(ubuntu) 9:09 4. nginx-rtmp直播和直播状态监听配置并使用ffplay播放直播流 11:24 第三章:FFMpegSDK解封和推流 1. ffmpegSDK开发环境准备,第一个ffmpeg项目创建 20:46 2. 初始化封装和网络库、打开音视频流并打印调试信息 18:29 3. 完成输出音视频流配置信息,使用ffmpeg新版本属性 19:32 4. 打开rtmp推流输出并从文件读取音视频帧 17:35 5. AVPacket的pts运算并完成帧推送使用vlc测试 10:49 6. 根据pts和系统记时控制推流速度_浏览器flash播放直播流 15:25 7. 推流基于rtsp协议的大华海康相机 24:58 第四章:OpencvSDK基础 1. opencv源码在windows下载编译安装7:53 2. windows 上创建opencv示例项目 12:03 3. 遍历修改连续的Mat图像空间 5:31 4. VideoCapture打开摄像头接口讲解和源码分析10:49 5. 读取一帧视频接口讲解和源码分析,分析读取解码和颜色转换过程9:20 第五章:视频采集编码推流和类封装 01. opencv播放rtsp海康摄像头和播放系统摄像头 16:17 02. 基于opencv采集rtsp流并使用异常处理失败流程 19:07 03. 像素格式转换(RGBToYUV)上下文创建配置和清理 20:34 04. rgb转yuv空间分配和转换函数调用23:50 05. 查找编码器并创建编码器上下文12:33 06. 编码器参数配置(包括打开多线程编码)并打开编码器17:06 07. 视频帧编码并根据设置AVFrame的输入pts13:36 08. 创建封装器添加视频AVStream并设置参数12:40 09. 打开推流IO,发送封装头,计算pts完成帧推流 15:14 10. XMediaEndcode工厂生产方法创建11:15 11. 完成InitScale初始化像素格式转换接口10:18 12. 完成RGBToYUV接口封装并重构代码13:18 13. 完成视频编码器初始化InitVideoCodec接口封装9:53 14. 完成了视频编码接口并重构rtsp_to_rtmp代码11:54 15. 创建XRtmp接口类完成封装器接口 25:25 第六章:音频录制编码推流和类封装 01. QT5开发环境准备11:56 02. 音频基础知识音频参数分析12:38 03. QT音频录制接口讲解并编写录制音频程序 13:31 04. 音频重采样上下文创建和配置12:27 05. 音频重采样空间分配并完成重采样14:10 06. 音频编码器创建和参数设置12:13 07. 音频的pts运算音频数据编码测试7:38 08. 完成音频推流并测试 12:52 09. 音频重采样XMediaEncode重采样接口封装代码重构20:20 10. 封装音频编码器设置接口重构视频编码器接口9:30 11. 完成音频编码接口封装和代码重构8:28 12. 完成音频推流接口XRtmp封装重构音频推流 13:13 第七章:音视频同步编码推流处理 01. 封装音频XAudioRecord初始化和关闭接口14:23 02. 完成音频录制接口,录制缓冲队列处理 22:26 03. 封装视频录制接口完成初始化和关闭接口13:33 04. XDataThread数据处理线程类创建并实现13:19 05. XAudioRecord集成数据基类重构12:51 06. 加入视频编码器和流11:05 07. 完成音视频推流封装处理未同步 16:36 08. 音频推流同步策略分析8:36 09. 音视频同步时间计算代码分析第一部分28:57 10. 音视频同步二解决音频有相同pts情况9:36 11. 音视频同步三完成同步 7:25 第八章:XRtmpStreamer项目完成(界面和美颜) 01. 磨皮双边滤波算法参数说明9:55 02. 双边滤波磨皮算法调用并测试性能 14:52 03. 直播框架添加图像过滤XFilter接口并实现双边滤波磨皮类18:55 04. 直播框架添加美颜磨皮9:26 05. XRtmpStreamer项目框架架构(类图)讲解 6:30 06. 完成了XController音视频录制模块初始化16:13 07. 完成XController中的编码封装推流模块初始化17:24 08. XController推流数据线程完成 16:31 09. QT直播推流项目完成界面设计14:18 10. 完成了qt项目直播推流 18:36
课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。