课程亮点
掌握本门课程的技术,你可以拓展实现以下功能:
1. 低延迟直播系统(在线教育等)
2. 1v1视频通话(微信视频聊天、主播连麦等)
3. 视频会议(腾讯会议等)
4. 云渲染、云游戏
5. 其它需要实时音视频功能的场景
讲师介绍
str2num, 毕业于华中科技大学计算机学院,曾任职于BAT等国内知名公司,擅长高性能高并发后台架构设计,在传统大直播、实时音视频、IM等领域有超过10年以上的实践经验,同时有超过5年的技术团队管理经验。
课程服务
1. 手把手视频教程
2. 分章节迭代源代码
3. 课程学习笔记
4. 1v1答疑服务
课程核心内容
本课程总共由4个部分构成。
第一阶段(WebRTC快速入门)
通过本部分课程,你可以学到以下核心内容:
1. Web端屏幕共享技术
2. WebRTC核心通信流程
3. 搭建Go静态资源服务并支持https
第二阶段(基础系统架构)
通过本部分课程,你可以学到以下核心内容:
1. 用golang实现一个轻量级的web框架
2. 基于libev + 消息队列的高性能异步网络编程
3. 无锁队列的原理和实现
4. golang与c++之间的rpc功能设计和实现
第三阶段(WebRTC推流)
通过本部分课程,你可以学到以下核心内容:
1. RTC推流功能实现,兼容WebRTC
2. 音视频实时分发核心架构设计
3. offer/answer模型,SDP各属性详解
4. STUN/ICE/DTLS等协议栈详解和实现
5. ICE核心功能实现
6. WebRTC peerconnection核心流程建立和异常处理
7. WebRTC核心基础库的运用
8. DTLS核心流程实现
第四阶段(WebRTC拉流)
通过本部分课程,你可以学到以下核心内容:
1. RTC拉流功能实现,兼容WebRTC
2. DTLS协商秘钥的获取
3. 音视频包的加密和解密处理
4. RTP/RTCP、SRTP/SRTCP协议
系统模块构成
- xrtcclient(js + html,后续会开发win/android/iOS端的课程,敬请期待):负责rtc推拉流客户端
- xrtcserver(c++实现): 负责音视频数据的实时分发
- signaling(go实现):负责WebRTC SDP的交换
协议栈和核心流程
- 协议栈
- 核心流程
项目效果
- 远程桌面共享-WebRTC推流端
- 远程桌面共享-WebRTC拉流端
- WebRTC延迟测试