你会学到什么?
- 从零实现 3 套基于 WebRTC 的私有化会议系统;
- 开源 WebRTC 网关 Janus、流媒体服务 SRS 的部署及使用;
- RTSP、RTMP 流与 WebRTC 自由组合;
- WebRTC 多场景方案探索实践。
所有课程源代码会开放一个固定的仓库,供大家学习参考。
课程简介
目前,公有云已经有了各种基于 WebRTC
的会议服务,但是终究是公有云。随着企业安全越来越受到重视,很多企业都想要一套支持私有化的音视频应用,但是购买的公有云产品一般并不支持私有化部署,或者很昂贵。
再者从用户角度看,参与一个普通的会议,却需要下载不同的 APP 才能与不同的客户语音视频,但凡参会人数稍微多一点,这些软件就提示用户升级到付费版本才可以,这无疑是个痛点。
如果我们能够自己实现一套会议系统,仅需浏览器就可以支持语音视频功能的话,那岂不是可以解决这些问题?因此,自己实现一套私有会议系统是很有必要的,而 WebRTC 就是首选。
WebRTC
的诞生,就是基于浏览器的多媒体即时通信,对于在 Web
端实现会议这个需求而言,它简直天生自带光环。而且 WebRTC
能够实现:实时双向音视频、主流浏览器支持、开发者容易入手、使用范围广且技术开源成熟等条件,且具有毫秒级的延迟特性。
而且,它在浏览器端有成熟的 API
,我们无需多少代码就可以满足无客户端视频通话的目的。可以说,WebRTC
是将前端技术和音视频嫁接起来最佳的媒介,对于前端同学而言,学习 WebRTC
作为音视频入门也是很有意义的。
因此,这本小册会将 WebRTC
和开源界很多有影响力的流媒体服务器组合起来,去实现会议、直播等场景。按照 “由简单场景再到复杂场景” 的逻辑,提供 3 种架构来设计实现会议系统。虽然我们的初衷是实现一套会议系统,但当面对不同场景时,我们需要知道还有哪些更适合的方案。
- 当会议场景只要人员点对点,或者偶尔需要少量人员多对多时,我们搭建一套简易架构,无需任何第三方服务的会议系统即可;
- 当会议场景基本都是多对多,而且需要实时监听用户网络状况、通话质量、会议云录制时,上一种架构就没法满足了,我们会用第二种机构实现会议系统。
- 其他的场景,比如在会议或通话过程中直播某些用户的画面, 像公开庭审等司法场景,那么前两种架构也无法满足我们,就需要第三种架构来实现会议系统。
当然,为了实现 3 种不同架构的会议系统,我们也需要先了解必要的 WebRTC
基础知识和相关 API。另外,WebRTC
除了会议系统,还可以实现很多花样。基于此,我们小册将分为 5 部分。
- 基础知识:
WebRTC
的基本认识和相关 API 学习。 - 第一阶段:
WebRTC
+ 自建信令服务器实现点对点、小型直播、第一种架构会议系统。 - 第二阶段:学习开源
WebRTC
服务器Janus
,并利用其实现第二种架构的会议系统。 - 第三阶段:学习开源流媒体服务器
SRS
,并实现WebRTC
推流拉流,进而打造第三种架构会议系统。 - 其他场景拓展:直播、流量监控、即时通讯、网页客服、远程控制、私密放映室等都可以尝试探索。
课程目录
开篇|使用 WebRTC 打造私有化会议系统
基础(一):Web 端基础 API 学习
基础(二):WebRTC 的会话流程以及信令服务器的搭建
WebRTC 实现点对点音视频以及类 IM 的即时消息发送
直播实战:WebRTC 实现类教师授课的 1 对 N 模式简易直播
直播实战:纯前端 + 人工智能模型实现视频虚拟背景
直播实战:WebRTC + 人工智能实现直播虚拟背景
直播实战:WebRTC 自有数据通道实现直播滚动弹幕
会议实战:WebRTC 实现多房间多用户的第一种架构会议系统
会议实战:实时通话过程中音频、视频画面实时控制切换
会议优化:WebRTC 通话过程中宽带计算及网络速率优化
网络配置:Coturn 网络穿透服务器的搭建及使用
WebRTC 网关初识:Janus 初识以及服务搭建
WebRTC 网关:项目实战以及插件使用
WebRTC 网关之插件实战:点对点视频通话媒体控制以及网速监控
WebRTC 网关之插件实战:实现第二种架构会议系统
WebRTC 网关:Janus 高级用法
流媒体 SRS 和 WebRTC :初步认识 SRS 及服务搭建
SRS + WebRTC 进阶实战:推流直播
SRS + WebRTC 进阶实战:搭建直播系统
SRS + WebRTC 进阶实战: 实现第三种架构会议系统
扩展:前端多画面媒体流合并分发
扩展:会议系统普通部署实战
扩展:会议系统容器化部署实战
讲师介绍
suke,SpringBoot 中文社区站长、某科技公司技术负责人,负责公司 IM、音视频、会议系统等内部产品,开源项目《基于 WebRTC 实现视频会议系统》作者。