是否有任何替代方法来实现 WebRTC SFU,只有 1 个上传流?
Posted
技术标签:
【中文标题】是否有任何替代方法来实现 WebRTC SFU,只有 1 个上传流?【英文标题】:Is there any alternative approach to implement WebRTC SFU, to have only 1 upload stream? 【发布时间】:2021-01-22 15:32:45 【问题描述】:我有一个服务器,它能够将 WebRTC 媒体数据从 A 中继到 B。对于视频会议,如果我们采用 P2P 方法,那么就会创建一个网状网络。当 P2P 不工作时,我们可以有这个中继服务器。
主要问题是在mesh网络中,对于N个参与者,上传链接的数量是“N - 1”。因此连接数上升到 N * (N-1)。通常mesh网络允许5-6个稳定连接。
许多在线资源建议实施 SFU。如果 SFU 解密媒体数据,然后为每个对等方重新加密,那么这实际上需要服务器端的 WebRTC 组件。 是否有任何基于 C/C++ 的轻量级库在这方面有所帮助?
有更好的替代策略吗?
顺便说一句,我试图用他们自己的答案与所有同行分享相同的提议,但正如预期的那样,它没有奏效。对等方在收到少量数据块后断开连接。
我参考了以下相关帖子:
WebRTC - scalable live stream broadcasting / multicasting Multi-party WebRTC without SFU Can I re-use an "offer" in WebRTC for mulitple connections?【问题讨论】:
【参考方案1】:有相当多的免费和开源项目实现了 SFU:
Jitsi 可能是最著名的,但它是用 Java 编写的,因此可能不适合某些部署; Janus 是用 C 编写的;它体积小、效率高且支持良好,但可能不是最容易理解的; Ion-SFU 和 Galène 是用 Go 编写的,可能更容易适应您的需求。【讨论】:
Janus 正式支持 Linux。您是否知道任何基于 C++ 的跨平台库或子集,它们可以生成提供/回答 SDP,然后对流进行编码/解码。与 Chrome 浏览器的功能相当。即使是 Chrome 的最小 WebRTC 子集也可以。但不确定,如何设置。 @jch 你觉得 mediasoup 怎么样? 我不擅长阅读node.js代码,所以也没多看。对不起。以上是关于是否有任何替代方法来实现 WebRTC SFU,只有 1 个上传流?的主要内容,如果未能解决你的问题,请参考以下文章
webrtc(native C++)+srs(sfu)测延时200ms