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