这门课解决什么问题

很多做 C++ 后端的人,平时写的多是业务接口或 CRUD 逻辑,一旦遇到音视频直播这类高并发、强实时场景,往往不知道从何下手。这门课的切入点很明确:带你从零搭建一套支持千万级并发的直播系统,重点拆解从底层网络传输到应用层流媒体分发的完整链路。它不是泛泛讲语法,而是直接对标真实业务中的核心难点——比如如何处理海量连接、如何保证音视频数据的低延迟传输、如何在服务端做流分发和负载均衡。如果你之前对“流媒体”的理解只停留在调用第三方 SDK,这门课能帮你补上底层原理和工程实现这一课。

适合什么基础,建议先看哪几块

这门课不适合零基础。你需要对 C++ 有基本掌握,至少能独立写多线程程序、理解智能指针和 RAII,同时熟悉 Linux 常用操作。如果连 makefile 都没写过,建议先补基础再看。课程前两章是环境搭建和工程构建,内容比较基础,有经验的人可以快速过一遍,重点看第三章开始的通用基础函数库实现。这里会手写时间工具、字符串操作、单例模式、定时任务和日志库——这些模块看似通用,但在流媒体场景下都有特定的设计考量,比如定时任务如何在高频心跳包下保证精度,日志库如何在不影响主线程 IO 性能的前提下做异步落盘。建议先把这些基础组件吃透,因为后续的流媒体核心模块都会依赖它们。如果时间有限,优先看日志库和定时任务的实现,这两块直接关系到线上服务的可观测性和稳定性。

学完能独立做什么,资料怎么配合练习

学完后,你应该能独立设计一套直播后台的基础架构,包括网络层的事件驱动模型、流媒体协议的封装与解析、以及服务端的核心业务逻辑。具体来说,能自己写一个支持 RTMP 或类似协议的流媒体服务器,处理推流和拉流请求,并实现基本的房间管理和用户鉴权。课程资料以视频为主,但不要只看不动手。建议按章节顺序边看边敲代码,每学完一个模块就自己跑一遍测试用例。比如学定时任务时,可以自己写一个模拟心跳包的场景,观察定时器的触发精度;学日志库时,尝试压测一下异步日志的吞吐量,看看在高并发下是否会丢日志或阻塞。课程里涉及的工程构建和开发环境配置,一定要自己完整搭一遍,很多人卡在环境问题上,其实是因为跳过了基础步骤。如果遇到问题,先回头检查基础组件的实现是否和课程一致,再往下推进。

课程目录

|--000.配套资料 第10章 HTTP-FLV实现 10-1 FLV简介.pdf
 10-2 FlvContext设计与实现_ev.mp4
 10-3 FlvPlayerUser设计与实现_ev.mp4
 10-4 本章知识点总结.pdf
 第11章 音视频Demux-实现FLV格式的音视频数据的解封装 11-1 音视频Demux.pdf
 11-2 音视频帧数据类型定义.pdf
 11-3 AudioDemux设计与实现_ev.mp4
 11-4 VideoDemux设计与实现_ev.mp4
 11-5 本章知识点总结.pdf
 第12章 MPEGTS实现-完成实时音视频到mpegts的封装 12-1 mpegts简介.pdf
 12-2 PSIWriter设计与实现_ev.mp4
 12-3 PatWriter和PmtWriter设计与实现_ev.mp4
 12-4 AudioEncoder设计与实现_ev.mp4
 12-5 VideoDemux设计与实现_ev.mp4
 12-6 TsEncoder设计与实现_ev.mp4
 12-7 mpegts功能测试_ev.mp4
 12-8 本章总结.pdf
 第13章 HLS协议实现 13-1 hls协议.pdf
 13-2 Fragment设计与实现_ev.mp4
 13-3 FragmentWindow设计与实现_ev.mp4
 13-4 HlsMuxer设计与实现_ev.mp4
 13-5 HLS综合测试1_ev.mp4
 13-6 HLS综合测试2_ev.mp4
 13-7 本章知识点总结.pdf
 第14章 回源功能实现 14-1 回源功能概述.pdf
 14-2 回源配置设计与实现_ev.mp4
 14-3 回源逻辑实现1_ev.mp4
 14-4 回源逻辑实现2_ev.mp4
 14-5 Rtmp回源设计与实现_ev.mp4
 14-6 回源测试_ev.mp4
 14-7 本章知识点总结.pdf
 第15章 WEBRTC拉流实现 15-1 Webrtc简介.pdf
 15-

10 NAT网络简介.pdf
 15-

11 ICE、TURNSTUN协议简介.pdf
 15-12 Stun解析和封装实现_ev.mp4
 15-13 Stun应用_ev.mp4
 15-14 -1 Dtls握手实现_ev.mp4
 15-15 -2 Dtls握手实现_ev.mp4
 15-16 dtls应用_ev.mp4
 15-17 Srtp实现_ev.mp4
 15-

18 RTP、RTCP协议简介.pdf
 15-19 Rtp基类设计与实现_ev.mp4
 15-2 webrtc概述及WebrtcService实现_ev.mp4
 15-20 音频AAC转Opus_ev.mp4
 15-21 RtpOpus设计与实现_ev.mp4
 15-22 RtpH264设计与实现_ev.mp4
 15-23 RtpMuxer设计与实现_ev.mp4
 15-24 Rtp数据包发送--WebrtcServer改造_ev.mp4
 15-25 Rtp数据包发送--Rtp数据包生成_ev.mp4
 15-26 Rtp数据包发送--WebrtcService推流_ev.mp4
 15-27 Webrtc整合测试_ev.mp4
 15-28 Rtcp基类设计与实现_ev.mp4
 15-29 SR报文实现及应用_ev.mp4
 15-3 WebrtcServer以及WebrtcPlayerUser实现_ev.mp4
 15-30 Rtpfb报文实现及应用_ev.mp4
 15-31 Rtcp测试_ev.mp4
 15-

32 GCC和BBR算法介绍.pdf
 15-

33 本章知识点总结.pdf
 15-4 dtls简介.pdf
 15-5 Dtls密钥和证书实现_ev.mp4
 15-6 SDP协议简介.pdf
 15-7 Sdp协议解析与封装实现_ev.mp4
 15-8 -1 Sdp应用_ev.mp4
 15-9 -2 Sdp应用_ev.mp4
 第16章 负载均衡系统简介 16-1 负载均衡概述.pdf
 16-2 基于DNS解析的GSLB实现.pdf
 16-3 基于HTTP重定向的GSLB实现.pdf
 16-4 本章知识点总结.pdf
 第17章 分布式系统及直播系统部署 17-1 分布式系统理论知识简介.pdf
 17-2 分布式直播系统.pdf
 17-3 直播系统的子系统.pdf
 17-4 分布式直播系统的部署.pdf
 17-5 本章知识点总结.pdf
 第18章 课程总结 18-1 C++大型流媒体直播系统-课程技术总结_ev.mp4
 第1章 C++大型流媒体项目-从底层到应用层千万级直播系统实战-导学 1-1 导学_ev.mp4
 第2章 开发环境安装与工程构建 2-1 后台开发环境安装.pdf
 2-2 安装Centos系统.pdf
 2-3 安装和配置Samba.pdf
 2-4 vscode安装和配置.pdf
 2-5 创建工程.pdf
 2-6 本章技术点总结.pdf
 第3章 C++通用基础函数库实现 3-1 时间常用函数.pdf
 3-10 配置文件1_ev (1).mp4
 3-10 配置文件1_ev.mp4
 3-11 配置文件2_ev.mp4
 3-

12 本章技术点总结.pdf
 3-2 字符串操作_ev.mp4
 3-3 单例_ev.mp4
 3-4 定时任务1_ev.mp4
 3-5 定时任务2_ev.mp4
 3-6 日志库-LogStream和Logger实现1_ev.mp4
 3-7 日志库-LogStream和Logger实现2_ev.mp4
 3-8 日志库-FileLog和FileLogManager实现1_ev.mp4
 3-9 日志库-FileLog和FileLogManager实现2_ev.mp4
 第4章 高性能网络框架设计与实现 4-1 认识网络服务器.pdf
 4-10 EventLoop-定时任务1_ev.mp4
 4-11 EventLoop-定时任务2_ev.mp4
 4-12 InetAddress_ev.mp4
 4-13 Socket操作类_ev.mp4
 4-14 Acceptor_ev.mp4
 4-15 Connection_ev.mp4
 4-16 TcpConnection-关闭,读,出错_ev.mp4
 4-17 TcpConnection-写_ev.mp4
 4-18 TimingWheel在TcpConnection的应用及TcpConnection功能测试_ev.mp4
 4-19 TcpClient_ev.mp4
 4-2 IO模型.pdf
 4-20 TcpServer_ev.mp4
 4-21 DnsService_ev.mp4
 4-22 UdpSocket_ev.mp4
 4-23 UdpClient_ev.mp4
 4-24 UdpServer_ev.mp4
 4-

25 本章技术点总结.pdf
 4-3 两种高效的事件处理模式.pdf
 4-4 网络基础.pdf
 4-5 EventLoop_ev.mp4
 4-6 EventLoop-Event_ev.mp4
 4-7 线程和线程池1_ev.mp4
 4-8 线程和线程池2_ev.mp4
 4-9 EventLoop-任务队列_ev.mp4
 第5章 多媒体直播系统业务概念与背后的事件 5-1 多媒体常用概念.pdf
 5-2 音视频编码格式简介.pdf
 5-3 音视频封装格式.pdf
 5-4 流媒体协议.pdf
 5-5 直播业务介绍.pdf
 5-6 一个直播的整个流程及背后的故事.pdf
 5-7 本章知识点总结.pdf
 第6章 多媒体模块 6-1 多媒体模块主要功能介绍.pdf
 6-2 有限状态机在协议解析上的应用_ev.mp4
 6-3 Context上下文在协议实现上的应用_ev.mp4
 6-4 多媒体数据包类设计与实现_ev.mp4
 6-5 多媒体模块协议回调类.pdf
 6-6 本章知识点总结.pdf
 第7章 rtmp实现 7-1 rtmp协议简介:简单握手和复杂握手.pdf
 7-10 rtmp协议实现:Rtmp数据包接收实现_ev.mp4
 7-11 rtmp协议实现:Rtmp数据包发送设计与实现1_ev.mp4
 7-12 rtmp协议实现:Rtmp数据包发送设计与实现2_ev.mp4
 7-

13 rtmp协议控制消息和用户控制消息.pdf
 7-14 rtmp协议实现:Rtmp协议控制消息和用户控制消息设计与实现_ev.mp4
 7-

16 rtmp协议实现:AMF 简单类型解析设计与实现_ev.mp4
 7-

17 rtmp协议实现:AMF Object解析设计与实现及AMF解析测试_ev.mp4
 7-18 rtmp协议实现:AMF封装设计与实现_ev.mp4
 7-

19 rtmp协议简介:命令消息.pdf
 7-2 Rtmp握手设计_ev.mp4
 7-20 rtmp协议实现:命令解析与命令实现1_ev.mp4
 7-21 rtmp协议实现:命令解析与命令实现2_ev.mp4
 7-22 rtmp协议实现:Rtmp命令交互实现及测试_ev.mp4
 7-23 RtmpClient设计与实现1_ev.mp4
 7-24 RtmpClient设计与实现2_ev.mp4
 7-

25 本章技术点总结.pdf
 7-3 Rtmp握手实现1_ev.mp4
 7-4 Rtmp握手实现2_ev.mp4
 7-5 RtmpServer设计与实现_ev.mp4
 7-6 rtmp协议头设计.pdf
 7-7 rtmp协议简介:消息格式.pdf
 7-8 ByteReader和ByteWriter.pdf
 7-9 rtmp协议实现:Rtmp数据包接收设计_ev.mp4
 第8章 直播管理-直播业务配置 8-1 直播管理概述.pdf
 8-10 实时流Stream设计与实现-音视频输出实现1_ev.mp4
 8-11 实时流Stream设计与实现-音视频输出实现2_ev.mp4
 8-12 Rtmp播放用户设计与实现_ev.mp4
 8-13 会话类Session设计与实现1_ev.mp4
 8-14 会话类Session设计与实现2_ev.mp4
 8-

15 直播业务管理类LiveService设计与实现1_ev.mp4
 8-

16 直播业务管理类LiveService设计与实现2_ev.mp4
 8-

17 直播推流和直播拉流播放测试_ev.mp4
 8-

18 本章知识点总结.pdf
 8-2 直播服务器以及直播业务配置设计与实现_ev.mp4
 8-3 直播业务配置在系统配置的实现及测试_ev.mp4
 8-4 时间戳修正TimeCorrector设计与实现_ev.mp4
 8-5 音视频头CodecHeader类设计与实现_ev.mp4
 8-6 Gop管理类设计与实现_ev.mp4
 8-7 用户类User设计与实现_ev.mp4
 8-8 播放用户类PlayerUser和推流用户类PublishUser设计与实现_ev.mp4
 8-9 实时流Stream设计与实现-实时音视频输入功能实现_ev.mp4
 第9章 HTTP协议实现 9-1 http协议简介.pdf
 9-

10 本章知识点总结.pdf
 9-2 Http消息接收1_ev.mp4
 9-3 Http消息接收2_ev.mp4
 9-4 Http消息接收3_ev.mp4
 9-5 HttpRequest类设计与实现1_ev.mp4
 9-6 HttpRequest类设计与实现2_ev.mp4
 9-7 HttpContext以及Http消息发送功能设计与实现_ev.mp4
 9-8 HttpServer设计与实现_ev.mp4
 9-9 HttpClient设计与实现_ev.mp4