问题:
WebRTC 为我们提供了点对点的视频/音频连接。它非常适合 p2p 通话、视频群聊。但是广播(一对多,例如,1 到 10000)呢?
假设我们有一个广播员“B”和两个与会者“A1”、“A2”。当然,这似乎是可以解决的:我们只需将 B 与 A1 连接,然后将 B 与 A2 连接。因此 B 将视频/音频流直接发送到 A1,将另一个流发送到 A2。B 发送两次流。
现在让我们假设有 10000 名与会者:A1、A2、...、A10000。这意味着 B 必须发送 10000 个流。每个流约为 40KB/s,这意味着 B 需要 400MB/s 的传出互联网速度来维持此广播。不可接受。
原始问题(已过时)
是否有可能以某种方式解决这个问题,所以 B 在某些服务器上只发送一个流,而与会者只是从该服务器中提取这个流?是的,这意味着这台服务器上的传出速度必须很高,但我可以保持它。
或者这可能意味着破坏 WebRTC 的想法?
笔记
根据最终客户糟糕的 UX,Flash 无法满足我的需求。
解决方案(不是真的)
26.05.2015 - 目前没有这样的 WebRTC 可扩展广播解决方案,您根本不使用媒体服务器。市场上有服务器端解决方案以及混合(p2p + 服务器端,具体取决于不同的条件)。
有一些很有前途的技术,虽然像https://github.com/muaz-khan/WebRTC-Scalable-Broadcast但他们需要回答这些可能的问题:延迟、整体网络连接稳定性、可扩展性公式(它们可能不是无限可扩展的)。
建议
- 通过调整音频和视频编解码器来减少 CPU/带宽;
- 获取媒体服务器。