流媒体学习之路(mediasoup)——初识mediasoup (1)
提示:硕士毕业后转行从事了流媒体相关工作,希望能通过一系列开源项目的学习来扩展自己的知识树。该系列将尝试从著名的C++开源流媒体服务器中学习其设计思想、代码逻辑,并尝试从自己的角度去理解其中的优点与缺点。
文章目录
前言
本文作为mediasoup学习的开篇,有必要对目前行业的通用多人互动架构、mediasoup设计思想以及其架构进行了解。参考他人的总结,结合自我思考实现较快速的入门。
提示:以下是本篇文章正文内容。
一、多人互动架构
目前,主要有三类多人视频互动架构,分别为:Mesh、MCU、SFU。此处引用了"Mr.Miaow"的图片来进行辅助分析,同时引用了"地铁程序员"对几个模式的解释。
1.1 Mesh
简单来说,一个普通的1对1通信我们需要:
1.传递信令
会话控制消息:初始化/关闭,各种业务逻辑消息以及错误报告。
网络相关:外部可识别的IP地址和端口。
媒体能力:客户端能控制的编解码器、分辩率,以及它想与谁通讯。
2.媒体数据传输
传递音频、视频等媒体数据。
下图1是一个不依赖服务器进行中转传输的1对1模型。STUN/TURN服务器可以通过NAT协议在两个用户之间打洞,完成了网络通信。signal server信令服务器则控制了信令传输。最后通过设备采集音视频数据在洞中传输即可完成一对一通信。

当一个频道的用户量增大时,便有Mesh这样的情况(图1-2)

作者硕士毕业后转行做流媒体工作,开篇介绍多人互动架构Mesh、MCU、SFU,分析其优缺点,指出SFU优势明显被广泛采用。还对mediasoup架构进行分析,介绍worker、生产者、消费者、路由等概念,后续将围绕Webrtc深入学习。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



