C++大型流媒体项目-从底层到应用层千万级直播系统实战

亲历字节/快手核心项目工程师,带你构建千万级直播系统的核心技能 实现高薪跃迁

已完结
|
难度:高级
|
时长:共 33 小时
¥399.00
距离活动结束
立即购买
加购物车
已有 145 人在学
  • 系统掌握C++大型工程开发
  • 快速掌握webrtc等主流协议
  • 具备千万级直播架构能力
  • 具备分布式直播系统开发能力
  • 深度掌握高性能网络技术
  • 大幅提升纯C++技术应用能力
试看本节课 08:49
1-1 导学

课程预览

检测到您还没有关注慕课网服务号,无法接收课程更新通知。请扫描二维码即可绑定
重新观看
当下火爆的短视频,直播,实时音视频传输都需要高性能直播系统的支撑,行业薪资水涨船高,本课程特邀前字节直播业务核心开发工程师,通过深入浅出的教学方法,带同学全面掌握从底层技术到应用层实现的直播系统开发技能。完成本课程将成为具备千万级并发处理能力的音视频直播系统工程师,能够设计、开发并部署高效稳定的直播解决方案,同时全面升级你的C++技能树,为职业生涯开辟更多可能性。

本章介绍:

本章简单介绍整个课程的内容

第1章 C++大型流媒体项目-从底层到应用层千万级直播系统实战-导学
1 节|9分钟
展开
  • 视频:
    1-1 导学
    试看
    08:49

本章介绍:

本章的目的准备开发环境和编译运行环境,以及创建工程的目录结构

第2章 开发环境安装与工程构建
6 节|
收起
  • 图文:
    2-1 后台开发环境安装
  • 图文:
    2-2 安装Centos系统
  • 图文:
    2-3 安装和配置Samba
  • 图文:
    2-4 vscode安装和配置
  • 图文:
    2-5 创建工程
  • 图文:
    2-6 本章技术点总结

本章介绍:

本章主要是实现一些整个系统通用的功能函数,单例模式,一个简单高效的日志库,简单定时任务管理器,配置文件解析模块等

第3章 C++通用基础函数库实现
12 节|263分钟
收起
  • 图文:
    3-1 时间常用函数
  • 视频:
    3-2 字符串操作
    22:10
  • 视频:
    3-3 单例
    22:04
  • 视频:
    3-4 定时任务1
    20:25
  • 视频:
    3-5 定时任务2
    26:50
  • 视频:
    3-6 日志库-LogStream和Logger实现1
    19:12
  • 视频:
    3-7 日志库-LogStream和Logger实现2
    21:47
  • 视频:
    3-8 日志库-FileLog和FileLogManager实现1
    30:44
  • 视频:
    3-9 日志库-FileLog和FileLogManager实现2
    34:56
  • 视频:
    3-10 配置文件1
    30:35
  • 视频:
    3-11 配置文件2
    33:55
  • 图文:
    3-12 本章技术点总结

本章介绍:

本章介绍了网络服务器的一些基础概念以及性能指标,通过实现一个简单的事件循环,慢慢增加事件处理,线程池,任务队列,定时任务,Tcp连接等功能,最后运用基础的网络功能,实现了Tcp服务器和客户端,以及Udp服务器和客户。

第4章 高性能网络框架设计与实现
25 节|662分钟
展开
  • 图文:
    4-1 认识网络服务器
  • 图文:
    4-2 IO模型
  • 图文:
    4-3 两种高效的事件处理模式
  • 图文:
    4-4 网络基础
  • 视频:
    4-5 EventLoop
    39:38
  • 视频:
    4-6 EventLoop-Event
    32:02
  • 视频:
    4-7 线程和线程池1
    29:44
  • 视频:
    4-8 线程和线程池2
    38:09
  • 视频:
    4-9 EventLoop-任务队列
    24:31
  • 视频:
    4-10 EventLoop-定时任务1
    20:03
  • 视频:
    4-11 EventLoop-定时任务2
    30:53
  • 视频:
    4-12 InetAddress
    40:47
  • 视频:
    4-13 Socket操作类
    45:04
  • 视频:
    4-14 Acceptor
    31:15
  • 视频:
    4-15 Connection
    28:32
  • 视频:
    4-16 TcpConnection-关闭,读,出错
    33:13
  • 视频:
    4-17 TcpConnection-写
    25:46
  • 视频:
    4-18 TimingWheel在TcpConnection的应用及TcpConnection功能测试
    33:02
  • 视频:
    4-19 TcpClient
    41:59
  • 视频:
    4-20 TcpServer
    38:45
  • 视频:
    4-21 DnsService
    38:53
  • 视频:
    4-22 UdpSocket
    49:32
  • 视频:
    4-23 UdpClient
    24:21
  • 视频:
    4-24 UdpServer
    15:13
  • 图文:
    4-25 本章技术点总结

本章介绍:

本章主要是简单介绍多媒体以及直播业务的相关概念和知识,这些概念在音视频开发以及直播业务开发的过程中经常会提到。最后通过一个直播的例子,简单介绍了直播系统在直播背后做的事件

第5章 多媒体直播系统业务概念与背后的事件
7 节|
展开
  • 图文:
    5-1 多媒体常用概念
  • 图文:
    5-2 音视频编码格式简介
  • 图文:
    5-3 音视频封装格式
  • 图文:
    5-4 流媒体协议
  • 图文:
    5-5 直播业务介绍
  • 图文:
    5-6 一个直播的整个流程及背后的故事
  • 图文:
    5-7 本章知识点总结

本章介绍:

本章主要是介绍多媒体模块的功能,以及实现多媒体模块各个协议要用的技术:有限状态机,Context上下文,多媒体数据包,多媒体协议回调等。

第6章 多媒体模块
6 节|49分钟
展开
  • 图文:
    6-1 多媒体模块主要功能介绍
  • 视频:
    6-2 有限状态机在协议解析上的应用
    11:02
  • 视频:
    6-3 Context上下文在协议实现上的应用
    18:35
  • 视频:
    6-4 多媒体数据包类设计与实现
    18:38
  • 图文:
    6-5 多媒体模块协议回调类
  • 图文:
    6-6 本章知识点总结

本章介绍:

本章介绍了rtmp协议的内容,实现了rtmp握手,消息接收和发送,amf数据解析和封装,rtmp消息的交互。通过rtmp协议,初始展示了怎么运用状态机和context去实现一个新协议。

第7章 rtmp实现
25 节|405分钟
展开
  • 图文:
    7-1 rtmp协议简介:简单握手和复杂握手
  • 视频:
    7-2 Rtmp握手设计
    18:20
  • 视频:
    7-3 Rtmp握手实现1
    26:06
  • 视频:
    7-4 Rtmp握手实现2
    19:48
  • 视频:
    7-5 RtmpServer设计与实现
    19:07
  • 图文:
    7-6 rtmp协议头设计
  • 图文:
    7-7 rtmp协议简介:消息格式
  • 图文:
    7-8 ByteReader和ByteWriter
  • 视频:
    7-9 rtmp协议实现:Rtmp数据包接收设计
    24:34
  • 视频:
    7-10 rtmp协议实现:Rtmp数据包接收实现
    34:37
  • 视频:
    7-11 rtmp协议实现:Rtmp数据包发送设计与实现1
    18:20
  • 视频:
    7-12 rtmp协议实现:Rtmp数据包发送设计与实现2
    25:38
  • 图文:
    7-13 rtmp协议控制消息和用户控制消息
  • 视频:
    7-14 rtmp协议实现:Rtmp协议控制消息和用户控制消息设计与实现
    32:54
  • 图文:
    7-15 rtmp协议简介:AMF0和AMF3简介
  • 视频:
    7-16 rtmp协议实现:AMF 简单类型解析设计与实现
    31:37
  • 视频:
    7-17 rtmp协议实现:AMF Object解析设计与实现及AMF解析测试
    28:46
  • 视频:
    7-18 rtmp协议实现:AMF封装设计与实现
    15:32
  • 图文:
    7-19 rtmp协议简介:命令消息
  • 视频:
    7-20 rtmp协议实现:命令解析与命令实现1
    20:10
  • 视频:
    7-21 rtmp协议实现:命令解析与命令实现2
    27:32
  • 视频:
    7-22 rtmp协议实现:Rtmp命令交互实现及测试
    18:49
  • 视频:
    7-23 RtmpClient设计与实现1
    18:37
  • 视频:
    7-24 RtmpClient设计与实现2
    23:59
  • 图文:
    7-25 本章技术点总结

本章介绍:

本章简单介绍了直播业务的内容,实现了直播业务配置,实现了直播实时数据管理类,使用rtmp协议实现了rtmp播放,rtmp推流。通过实现直播管理类,把直播业务,多媒体模块和网络模块整合在一起,形成了一个功能完整的直播系统。

第8章 直播管理-直播业务配置
18 节|332分钟
展开
  • 图文:
    8-1 直播管理概述
  • 视频:
    8-2 直播服务器以及直播业务配置设计与实现
    32:52
  • 视频:
    8-3 直播业务配置在系统配置的实现及测试
    21:45
  • 视频:
    8-4 时间戳修正TimeCorrector设计与实现
    26:31
  • 视频:
    8-5 音视频头CodecHeader类设计与实现
    33:45
  • 视频:
    8-6 Gop管理类设计与实现
    17:52
  • 视频:
    8-7 用户类User设计与实现
    23:52
  • 视频:
    8-8 播放用户类PlayerUser和推流用户类PublishUser设计与实现
    17:08
  • 视频:
    8-9 实时流Stream设计与实现-实时音视频输入功能实现
    32:14
  • 视频:
    8-10 实时流Stream设计与实现-音视频输出实现1
    14:09
  • 视频:
    8-11 实时流Stream设计与实现-音视频输出实现2
    13:55
  • 视频:
    8-12 Rtmp播放用户设计与实现
    09:36
  • 视频:
    8-13 会话类Session设计与实现1
    16:49
  • 视频:
    8-14 会话类Session设计与实现2
    08:50
  • 视频:
    8-15 直播业务管理类LiveService设计与实现1
    22:01
  • 视频:
    8-16 直播业务管理类LiveService设计与实现2
    14:46
  • 视频:
    8-17 直播推流和直播拉流播放测试
    24:58
  • 图文:
    8-18 本章知识点总结

本章介绍:

本章简单实现了http协议。通过运用有限状态机,简化HTTP请求和响应的接收和发送,同时也展示了C++字符串,容器和算法的运用。

第9章 HTTP协议实现
10 节|192分钟
展开
  • 图文:
    9-1 http协议简介
  • 视频:
    9-2 Http消息接收1
    21:24
  • 视频:
    9-3 Http消息接收2
    21:39
  • 视频:
    9-4 Http消息接收3
    13:29
  • 视频:
    9-5 HttpRequest类设计与实现1
    20:07
  • 视频:
    9-6 HttpRequest类设计与实现2
    25:42
  • 视频:
    9-7 HttpContext以及Http消息发送功能设计与实现
    23:38
  • 视频:
    9-8 HttpServer设计与实现
    33:49
  • 视频:
    9-9 HttpClient设计与实现
    31:53
  • 图文:
    9-10 本章知识点总结

本章介绍:

本章介绍了FLV格式,并且实现了FLV格式的封装。最后结合HTTP协议和FLV格式,实现了HTTP-FLV的播放协议。

第10章 HTTP-FLV实现
4 节|67分钟
展开
  • 图文:
    10-1 FLV简介
  • 视频:
    10-2 FlvContext设计与实现
    33:08
  • 视频:
    10-3 FlvPlayerUser设计与实现
    32:53
  • 图文:
    10-4 本章知识点总结

本章介绍:

本章介绍了音频AAC的两种格式:adif和adts,视频AVC的两种格式:avcc和annxb,实现了FLV格式的音视频数据的解封装。

第11章 音视频Demux-实现FLV格式的音视频数据的解封装
5 节|73分钟
展开
  • 图文:
    11-1 音视频Demux
  • 图文:
    11-2 音视频帧数据类型定义
  • 视频:
    11-3 AudioDemux设计与实现
    24:22
  • 视频:
    11-4 VideoDemux设计与实现
    47:56
  • 图文:
    11-5 本章知识点总结

本章介绍:

本章介绍了mpegts协议,实现了psi/pat/pmt writer,以及音视频pes encoder,最后通过ts endcoder整合在一起,完成实时音视频到mpegts的封装。

第12章 MPEGTS实现-完成实时音视频到mpegts的封装
8 节|193分钟
展开
  • 图文:
    12-1 mpegts简介
  • 视频:
    12-2 PSIWriter设计与实现
    27:27
  • 视频:
    12-3 PatWriter和PmtWriter设计与实现
    24:53
  • 视频:
    12-4 AudioEncoder设计与实现
    50:29
  • 视频:
    12-5 VideoDemux设计与实现
    40:33
  • 视频:
    12-6 TsEncoder设计与实现
    20:16
  • 视频:
    12-7 mpegts功能测试
    29:07
  • 图文:
    12-8 本章总结

本章介绍:

本章主要实现了HLS协议,包括切片生成,切片管理,hls管理类,http请求ts,http请求m3u8等功能。

第13章 HLS协议实现
7 节|82分钟
展开
  • 图文:
    13-1 hls协议
  • 视频:
    13-2 Fragment设计与实现
    13:40
  • 视频:
    13-3 FragmentWindow设计与实现
    19:13
  • 视频:
    13-4 HlsMuxer设计与实现
    18:14
  • 视频:
    13-5 HLS综合测试1
    15:13
  • 视频:
    13-6 HLS综合测试2
    15:22
  • 图文:
    13-7 本章知识点总结

本章介绍:

本章介绍了回源的原因和原理,实现了回源的框架,并且用rtmp协议实现了回源功能。

第14章 回源功能实现
7 节|92分钟
展开
  • 图文:
    14-1 回源功能概述
  • 视频:
    14-2 回源配置设计与实现
    21:50
  • 视频:
    14-3 回源逻辑实现1
    15:24
  • 视频:
    14-4 回源逻辑实现2
    15:46
  • 视频:
    14-5 Rtmp回源设计与实现
    19:09
  • 视频:
    14-6 回源测试
    19:03
  • 图文:
    14-7 本章知识点总结

本章介绍:

本章介绍了webrtc框架下的sdp,dtls,stun/tune/ICE,srtp/srtcp等协议,并且实现了sdp,dtls,stun,srtp/srtcp等协议。

第15章 WEBRTC拉流实现
33 节|523分钟
展开
  • 图文:
    15-1 Webrtc简介
  • 视频:
    15-2 webrtc概述及WebrtcService实现
    28:29
  • 视频:
    15-3 WebrtcServer以及WebrtcPlayerUser实现
    29:27
  • 图文:
    15-4 dtls简介
  • 视频:
    15-5 Dtls密钥和证书实现
    26:57
  • 图文:
    15-6 SDP协议简介
  • 视频:
    15-7 Sdp协议解析与封装实现
    30:43
  • 视频:
    15-8 -1 Sdp应用
    18:00
  • 视频:
    15-9 -2 Sdp应用
    17:06
  • 图文:
    15-10 NAT网络简介
  • 图文:
    15-11 ICE/TURN/STUN协议简介
  • 视频:
    15-12 Stun解析和封装实现
    28:55
  • 视频:
    15-13 Stun应用
    22:30
  • 视频:
    15-14 -1 Dtls握手实现
    18:07
  • 视频:
    15-15 -2 Dtls握手实现
    19:27
  • 视频:
    15-16 dtls应用
    12:58
  • 视频:
    15-17 Srtp实现
    27:59
  • 图文:
    15-18 RTP/RTCP协议简介
  • 视频:
    15-19 Rtp基类设计与实现
    21:40
  • 视频:
    15-20 音频AAC转Opus
    29:01
  • 视频:
    15-21 RtpOpus设计与实现
    07:58
  • 视频:
    15-22 RtpH264设计与实现
    25:21
  • 视频:
    15-23 RtpMuxer设计与实现
    24:44
  • 视频:
    15-24 Rtp数据包发送--WebrtcServer改造
    15:24
  • 视频:
    15-25 Rtp数据包发送--Rtp数据包生成
    15:20
  • 视频:
    15-26 Rtp数据包发送--WebrtcService推流
    08:20
  • 视频:
    15-27 Webrtc整合测试
    10:43
  • 视频:
    15-28 Rtcp基类设计与实现
    14:16
  • 视频:
    15-29 SR报文实现及应用
    25:12
  • 视频:
    15-30 Rtpfb报文实现及应用
    28:37
  • 视频:
    15-31 Rtcp测试
    15:11
  • 图文:
    15-32 GCC和BBR算法介绍
  • 图文:
    15-33 本章知识点总结

本章介绍:

本章的目的是介绍分布式直播系统的接入系统。接入系统的目的是做负载均衡,而负载均衡有全局负载均衡和局部负载均衡;可以通过DNS实现负载均衡,也可以定制私有的接入系统实现负载均衡。

第16章 负载均衡系统简介
4 节|
展开
  • 图文:
    16-1 负载均衡概述
  • 图文:
    16-2 基于DNS解析的GSLB实现
  • 图文:
    16-3 基于HTTP重定向的GSLB实现
  • 图文:
    16-4 本章知识点总结

本章介绍:

本章介绍了分布式直播系统的各个子系统的功能,设计整个系统的部署架构。分布式部署的目的是为了保持系统可用性的情况下,尽可能的优化用户体验。

第17章 分布式系统及直播系统部署
5 节|
展开
  • 图文:
    17-1 分布式系统理论知识简介
  • 图文:
    17-2 分布式直播系统
  • 图文:
    17-3 直播系统的子系统
  • 图文:
    17-4 分布式直播系统的部署
  • 图文:
    17-5 本章知识点总结

本章介绍:

课程总结

第18章 课程总结
1 节|15分钟
展开
  • 视频:
    18-1 C++大型流媒体直播系统-课程技术总结
    14:21
本课程已完结
适合人群
C++大型工程实践感兴趣的同学
对流媒体开发,高性能服务器,分布式系统实践感兴趣的
技术储备
C++基础知识
网络编程基础知识
linux编程基础知识
环境参数
IDE vscode
系统 编译系统和目标系统都是centos
smalls强
高级工程师, 已有145个学生
不为别的,只为提升面试通过率
尽管课程时间很长,
但没关系,我们有老师的陪伴,
还有同学之间互相鼓励,彼此帮助,
完成学习后,还能获得慕课网官方认证的证书。
立即购买
数据加载中...
《C++大型流媒体项目-从底层到应用层千万级直播系统实战》的真实评价
综合评分:分,共 人参与
篇幅原因,只展示最近100条评价

学习咨询

选课、学习遇到问题?

扫码添加指导老师 1V1 帮助你!

添加后老师会第一时间解决你的问题

意见反馈 帮助中心 APP下载
官方微信