(核心架构)基于WebRTC的大型分布式实时音视频XRTC系统项目实战

你将掌握基于WebRTC的高性能实时音视频后台服务开发技术,可用于视频通话、在线教育、视频会议等

33998人学习

初级63课时2023/09/11更新

二维码下载学堂APP缓存视频离线看

str2num
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
基于WebRTC的大型分布式实时音视频XRTC系统项目实战
(核心架构)基于WebRTC的大型分布式实时音视频XRTC系统项目实战
33998人学习
¥499.00
(推流)基于WebRTC的大型分布式实时音视频XRTC系统项目实战
29125人学习
¥599.00
(拉流)基于WebRTC的大型分布式实时音视频XRTC系统项目实战
3209人学习
¥299.00
更 多 3 门 课 程
音视频QoS合集:WebRTC拥塞控制+平滑发送+丢包重传
音视频QoS技术:WebRTC平滑发送(Pacer)技术深入剖析和实现
6650人学习
¥399.00
音视频QoS技术:WebRTC带宽估计/拥塞控制GCC技术深入剖析和实现
27432人学习
¥1999.00
音视频QoS技术:WebRTC丢包重传(NACK)技术深入剖析和实现
4014人学习
¥29.00
更 多 3 门 课 程
C语言开发工程师职业学习系列套餐
C语言编程基础视频课程(七日成蝶)
261263人学习
¥49.00
C语言课程升华篇之打字游戏(七日成蝶)
22501人学习
¥29.00
Linux基础入门教程
28823人学习
¥5.00
更 多 45 门 课 程
C/C++跨平台研发基础入门与实战系列专题
C++ 设计模式理论与实战大全
94400人学习
¥198.00
C++QT5跨平台界面编程原理和实战大全视频课程
288098人学习
¥268.00
FFmpeg安卓流媒体播放器开发实战视频课程 -基于NDK、C++和 FFmpeg Android
157117人学习
¥298.00
更 多 23 门 课 程
C/C++跨平台研发基础入门与实战系列专题
C++ 设计模式理论与实战大全
94400人学习
¥198.00
C++QT5跨平台界面编程原理和实战大全视频课程
288098人学习
¥268.00
FFmpeg安卓流媒体播放器开发实战视频课程 -基于NDK、C++和 FFmpeg Android
157117人学习
¥298.00
更 多 23 门 课 程
  • 课程介绍
  • 课程大纲

适合人群:

想快速入门WebRTC技术、掌握WebRTC的有效学习方法,并打算体系化学习WebRTC技术;对音视频技术、高性能后台服务开发、分布式架构十分感兴趣,未来有意愿从事相关工作。

你将会学到:

你将掌握基于WebRTC的高性能实时音视频后台服务开发技术,可用于视频通话、在线教育、视频会议等

  • Web端屏幕共享技术
  • 基于libev+消息队列的异步网络编程框架实现
  • 音视频实时分发核心架构设计
  • STUN/TURN/ICE/DTLS等网络协议栈详解与实现
  • WebRTC核心通信流程剖析
  • WebRTC推拉功能实现

课程简介:

掌握本门课程的技术,你可以拓展实现以下功能:

1. 低延迟直播系统(在线教育等)
2. 1v1视频通话(微信视频聊天、主播连麦等)
3. 视频会议(腾讯会议等)
4. 云渲染、云游戏
5. 其它需要实时音视频功能的场景

WebRTC全套课程咨询&答疑服务粉丝群,不购课也可入群交流学习WebRTC和音视频技术,购课后请务必添加粉丝群,以便提供更好的答疑服务

51二维码.png

课程服务

1. 手把手视频教程
2. 分章节迭代源代码
3. 课程学习笔记
4. 1v1答疑服务

核心内容介绍(完整的课程目录,请查看文末)
本课程总共由4个部分构成。

第一部分(快速入门)

通过本部分课程,你可以学到以下核心内容:
1. Web端屏幕共享技术
2. WebRTC核心通信流程
3. 搭建Go静态资源服务并支持https

第二部分(基础架构)

通过本部分课程,你可以学到以下核心内容:
1. 用golang实现一个轻量级的web框架
2. 基于libev + 消息队列的高性能异步网络编程
3. 无锁队列的原理和实现
4. golang与c++之间的rpc功能设计和实现

第三部分(RTC推流)

通过本部分课程,你可以学到以下核心内容:
1. RTC推流功能实现,兼容WebRTC
2. 音视频实时分发核心架构设计
3. offer/answer模型,SDP各属性详解
4. STUN/ICE/DTLS等协议栈详解和实现
5. ICE核心功能实现
6. WebRTC peerconnection核心流程建立和异常处理
7. WebRTC核心基础库的运用
8. DTLS核心流程实现

第四部分(RTC拉流)

通过本部分课程,你可以学到以下核心内容:
1. RTC拉流功能实现,兼容WebRTC
2. DTLS协商秘钥的获取
3. 音视频包的加密和解密处理
4. RTP/RTCP、SRTP/SRTCP协议

核心模块组成

xrtcclient(js + html,后续会开发win/android/iOS端的课程,敬请期待):负责rtc推拉流客户端
xrtcserver(c++实现): 负责音视频数据的实时分发
signaling(go实现):负责WebRTC SDP的交换

signaling(信令服务)

signaling.png

xrtcserver(分发服务)

xrtcserver.png

协议栈和核心流程

核心流程.png

效果展示

远程共享本地视频(推流端)

推流.png

远程共享本地视频(拉流端)

拉流.png

延迟效果测试

秒表.png

完整目录

------------快速入门------------
1. XRTC1.0-系统效果演示
2. 课程内容介绍
3. 课程环境准备
4.1v1桌面共享-用golang搭建http静态资源服务
5. 1v1桌面共享-支持https访问
6. 1v1桌面共享-UI界面设计
7. 1v1桌面共享-chrome屏幕共享插件的获取和配置
8. 1v1桌面共享-获取屏幕共享视频流
9. 1v1桌面共享-WebRTC的核心流程介绍
10. 1v1桌面共享-实现WebRTC推流
11. 1v1桌面共享-实现WebRTC拉流(上)
12. 1v1桌面共享-实现WebRTC拉流(中)
13. 1v1桌面共享-实现WebRTC拉流(下)
14. 1v1桌面共享-停止推流和拉流、小结
------------核心架构------------
15. XRTC1.0-服务转发的基本设计理念
16. XRTC1.0-推流基本流程设计
17. XRTC1.0-signaling服务基础框架1
18. XRTC1.0-signaling服务基础框架2
19. XRTC1.0-推流端UI设计
20. XRTC1.0-signaling服务添加log模块1
21. XRTC1.0-signaling服务添加log模块2
22. XRTC1.0-signaling服务设计comlog
23. XRTC1.0-signaling服务comlog填充通用日志字段
24. XRTC1.0-signaling服务comlog添加耗时计算
25. XRTC1.0-signaling服务添加conf模块
26. XRTC1.0-signaling服务支持https和静态资源访问
27. XRTC1.0-signaling服务push请求的发送和处理
28. XRTC1.0-signaling服务push请求参数的解析和异常处理
29. XRTC1.0-signaling服务与分发服务通信协议设计
30. XRTC1.0-signaling服务通过配置文件加载xrpc client
31. XRTC1.0-signaling服务定义header、request、response对象
32. XRTC1.0-signaling服务xrpc负载均衡实现
33. XRTC1.0-xrtcserver搭建基础框架
34. XRTC1.0-xrtcserver添加conf模块
35. XRTC1.0-xrtcserver添加log模块
36. XRTC1.0-xrtcserver实现log异步写入文件
37. XRTC1.0-xrtcserver解决log写入文件失败的问题
38. XRTC1.0-xrtcserver信令处理模块设计
39. XRTC1.0-xrtcserver创建tcp server
40. XRTC1.0-xrtcserver libev封装
41. XRTC1.0-xrtcserver IOWatcher增加启动、停止、删除功能
42. XRTC1.0-xrtcserver 添加事件循环、启动、停止服务功能
43. XRTC1.0-xrtcserver 创建workers
44. XRTC1.0-xrtcserver 分发new_conn 给worker处理
45. XRTC1.0-xrtcserver 无锁队列的实现
46. XRTC1.0-xrtcserver 封装TcpConnection类
47. XRTC1.0-signaling实现请求的转发写入
48. XRTC1.0-xrtcserver tcp连接数据读取1
49. XRTC1.0-xrtcserver tcp连接数据读取2
50. XRTC1.0-xrtcserver tcp连接超时处理以及资源清理
51. XRTC1.0-xrtcserver 解析请求body并处理
52. XRTC1.0-xrtcserver 创建rtcserver
53. XRTC1.0-xrtcserver 创建rtcworkers
54. XRTC1.0-rtcserver将请求分配给worker进行处理
55. XRTC1.0-xrtcserver rtcworker将offer返给signaling worker
56. XRTC1.0-xrtcserver信令worker构造响应包
57. XRTC1.0-xrtcserver信令worker将响应包写入tcpconnection
58. XRTC1.0-signaling服务读取响应结果
59. XRTC1.0-signaling服务返回offer给客户端
------------RTC推流-------------
60. XRTC1.0-流管理器设计
61. XRTC1.0-开始实现create offer
62. XRTC1.0-向offer中添加media content
63. XRTC1.0-实现BUNDLE的功能
64. XRTC1.0-向offer中添加m行以及支持的编解码
65. XRTC1.0-向offer中添加codec及其详细参数
66. XRTC1.0-向offer中添加rtcp-mux以及传输方向
67. XRTC1.0-向offer中添加ice-ufrag和ice-pwd
68. XRTC1.0-向offer中添加fingerprint
69. XRTC1.0-向offer中添加setup属性
70. XRTC1.0-创建IceTransportChannel
71. XRTC1.0-实现SetLocalDescription
72. XRTC1.0-获取本地所有可用的网络接口
73. XRTC1.0-封装PortAllocator类
74. XRTC1.0-ICE的运行步骤和candidate的分类
75. XRTC1.0-创建UDP Port
76. XRTC1.0-准备socket address
77. XRTC1.0-创建ICE local candidate
78. XRTC1.0-ICE candidate的收集和交换方式
79. XRTC1.0-client peerconnection设置offer并创建answer
80. XRTC1.0-client peerconnection向signaling发送answer
81. XRTC1.0-signaling server处理sendanswer请求
82. XRTC1.0-xrtcserver处理answer请求
83. XRTC1.0-解析answer中的transport info
84. XRTC1.0-实现SetRemoteDescription
85. XRTC1.0-实现异步读取推流端网络数据包
86. XRTC1.0-STUN协议详解
87. XRTC1.0-验证STUN fingerprint
88. XRTC1.0-STUN message读取
89. XRTC1.0-实现STUN ByteString属性类型的读取
90. XRTC1.0-解析并验证USERNAME属性
91. XRTC1.0-解析并验证MESSAGE-INTEGRITY属性
92. XRTC1.0-STUN Binding request异常处理
93. XRTC1.0-创建peer reflexive candidate
94. XRTC1.0-创建IceConnection
95. XRTC1.0-构造binding response
96. XRTC1.0-添加MESSAGE-INTEGRITY属性
97. XRTC1.0-添加FINGERPRINT属性
98. XRTC1.0-发送binding response
99. XRTC1.0-实现UDP packet的高性能发送
100. XRTC1.0-完成ICE connection的keepalive
101. XRTC1.0-发送STUN error response message
102. XRTC1.0-实现服务侧的连通性检查
103. XRTC1.0-设计IceTransportChannel的ping执行周期
104. XRTC1.0-ICE Connection的ping优先级
105. XRTC1.0-选择一个connection执行本轮ping请求
106. XRTC1.0-构造STUN request请求
107. XRTC1.0-ICE普通提名和积极提名
108. XRTC1.0-发送STUN ping请求
109. XRTC1.0-处理STUN response响应
110. XRTC1.0-输出RTT和ping ID信息
111. XRTC1.0-更新IceConnection的读写状态
112. XRTC1.0-实现selected connection的切换策略
113. XRTC1.0-切换策略考虑IceConnection的priority和RTT
114. XRTC1.0-开始切换selected connection
115. XRTC1.0-清理STUN request并处理错误响应
116. XRTC1.0-设置CandidatePairState
117. XRTC1.0-处理IceConnection ping周期问题
118. XRTC1.0-实现IceConnection探活机制
119. XRTC1.0-更新IceTransportChannel的状态
120. XRTC1.0-封装DtlsTransport类
121. XRTC1.0-缓存ClientHello packet
122. XRTC1.0-安装DTLS
123. XRTC1.0-实现SetLocalCertificate方法
124. XRTC1.0-实现SetRemoteFingerprint方法
125. XRTC1.0-启动DTLS
126. XRTC1.0-实现DTLS数据的读取
127. XRTC1.0-实现DTLS数据的写入
128. XRTC1.0-设置DTLS-SRTP密码套件
129. XRTC1.0-设置DtlsTransport的状态
130. XRTC1.0-设置DtlsTransport receiving状态
131. XRTC1.0-计算PeerConnection的状态
132. XRTC1.0-计算IceTransportChannel的状态
133. XRTC1.0-计算IceAgent的状态
134. XRTC1.0-联合ICE和DTLS的状态重新计算PeerConnection的状态
135. XRTC1.0-实现PeerConnection failed状态下的资源清理
136. XRTC1.0-signaling支持停止推流
137. XRTC1.0-xrtcserver支持停止推流
138. XRTC1.0-推流部分小结
--------------RTC拉流----------------
139. XRTC1.0-设计拉流端UI
140. XRTC1.0-xrtcserver处理pull命令
141. XRTC1.0-音视频转发方案设计
142. XRTC1.0-解析PushStream中SDP的ssrc信息
143. XRTC1.0-解析ssrc group信息
144. XRTC1.0-创建音视频track
145. XRTC1.0-PushStream实现获取音视频源的方法
146. XRTC1.0-PullStream实现设置音视频源的方法
147. XRTC1.0-offer sdp中增加ssrc的描述信息
148. XRTC1.0-创建DtlsSrtpTransport
149. XRTC1.0-从DTLS中导出server和client key
150. XRTC1.0-创建SrtpSession并设置参数
151. XRTC1.0-引入libsrtp库
152. XRTC1.0-初始化libsrtp库
153. XRTC1.0-创建或者更新srtp context结构
154. XRTC1.0-完成srtp的set_recv和update_recv方法
155. XRTC1.0-开始安装DTLS-SRTP
156. XRTC1.0-解复用rtp和rtcp包
157. XRTC1.0-实现rtp和rtcp包的判断方法
158. XRTC1.0-rtp数据包解密
159. XRTC1.0-rtcp数据包解密
160. XRTC1.0-RtcStream获取rtp和rtcp数据包
161. XRTC1.0-转发rtp数据
162. XRTC1.0-实现DtlsSrtpTransport的rtp发送
163. XRTC1.0-加密rtp数据包
164. XRTC1.0-发送加密的rtcp数据包
165. XRTC1.0-signaling停止拉流
166. XRTC1.0-xrtcserver处理停止拉流命令
167. XRTC1.0-异常处理、代码完善
168. XRTC1.0-总结和效果演示

展开更多
在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部