14

如果我和其他 7 个用户在一个房间里,我想知道 WebRTC 是否强制每个用户与其他每个参与者建立连接。

显然,它会消耗 7kb/s*7 的下载甚至上传,如果他们的连接已经很忙,许多连接将无法处理这个问题。相反,使用某种媒体中继,带宽使用率仅为 7kb/s,但您将失去对等方之间的带宽适配。

您知道任何媒体中继或解决此问题的方法吗?TURN 服务器(如https://code.google.com/p/rfc5766-turn-server/)是否适合这种工作(包括多播)?

4

5 回答 5

8

TURN 服务器用作后备中继服务器,以便在由于防火墙或其他网络问题而无法直接进行对等连接时启用连接。(更多信息请点击此处:按 P 获取演讲者备注。) TURN 服务器不是为媒体分发而设计的。

点控制单元可以解决您提到的问题:这里有一个示例拓扑。如该幻灯片的注释所述:

这是一个专门做媒体分发的服务器,可以处理大量的参与者;它还可以做一些智能的事情,例如选择性流转发、音频或视频的混合或录制。

于 2013-06-17T08:43:33.277 回答
4

有关 WebRTC 用例的详细信息,请查看https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-use-cases-and-requirements-06。作者提到了使用中央服务器的多用户会议解决方案。因此,使用 WebRTC 建立多用户 A/V 会议的最佳解决方案是拥有这样一个中央服务器,它可以向所有对等方进行音频混合和 A/V“广播”。

这绕过了您在问题中提到的带宽问题。目前,一大群初创企业和成熟的服务提供商正在开发基于 WebRTC 的会议解决方案,只需让您最喜欢的网络搜索引擎挑选一些示例即可。

单独的 TURN 服务器是不够的,因为 TURN 仅用于为无法直接访问的主机中继数据(可能是因为防火墙)。TURN 服务器不会终止 WebRTC 连接。

于 2013-06-16T18:36:14.000 回答
3

是的,您必须与每个对等方建立单独的连接。为了解决这个问题,您可以使用像kurento这样的媒体服务器。

使用媒体服务器,每个对等方都将连接到媒体服务器,然后服务器会将来自对等方的视频流并排放置,然后将它们合并为一个,然后向您发送新流。这省去了对等点必须从其他对等点下载流的麻烦。

于 2016-06-06T18:44:17.533 回答
0

你是对的,对等点之间的带宽适应是一个问题。

TURN 服务器不能解决这个问题,因为它所做的只是提供一个稳定的端点,通常用于非常严格的 NAT 设置背后的人。

这个问题的解决方案在于可扩展的视频编解码器。这些视频编解码器专为解决多路视频会议问题而设计。H.264/SVC 就是这样一种可扩展的编解码器,目前被 Google+ Hangouts 使用。VP8 还具有时间和空间可扩展性,用于 WebRTC。

可扩展视频编解码器的设计使部分流(通常是单独的 UDP 数据包)可以从流中移除,同时保留以较低质量解码视频的能力。至少使用了三种类型的可扩展性:

  • 时间,其中每秒帧数减少。
  • 空间,其中像素数减少。
  • 质量,颜色分辨率降低。

如果你实现一个视频会议服务器,你可以进入比WebRTC级别更低的VP8流,对每个视频流做必要的修改,解决带宽适配问题。

于 2013-06-16T22:56:38.417 回答
0

如果问题仍然存在,这是我的建议:根据您的 SIP 服务器安装 RTP 代理软件,例如,如果您使用的是 kamailio,请将其与 rtpengine 结合使用。

于 2014-04-28T08:52:51.357 回答