Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebRTC如何处理多对多连接?_Javascript_Webrtc_Voip_Stun - Fatal编程技术网

Javascript WebRTC如何处理多对多连接?

Javascript WebRTC如何处理多对多连接?,javascript,webrtc,voip,stun,Javascript,Webrtc,Voip,Stun,如果我和其他7个用户在一个房间里,我想知道WebRTC是否会强制每个用户与其他参与者建立连接 很明显,它会消耗7kb/s*7下载甚至上传,如果他们的连接已经很忙,很多连接就无法处理这个问题。 相反,使用某种媒体中继,带宽使用率将仅为7kb/s,但会丢失对等点之间的带宽自适应 你知道什么媒体转播,或者解决这个问题的方法吗?TURN服务器(如)是否适合此类作业(包括多播)?查看有关WebRTC用例的详细信息。作者提到了一种使用中央服务器的多用户会议解决方案。因此,使用WebRTC建立多用户A/V会议

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

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

你知道什么媒体转播,或者解决这个问题的方法吗?TURN服务器(如)是否适合此类作业(包括多播)?

查看有关WebRTC用例的详细信息。作者提到了一种使用中央服务器的多用户会议解决方案。因此,使用WebRTC建立多用户A/V会议的最佳解决方案是拥有这样一个中央服务器,该服务器向所有对等方进行音频混合和A/V“广播”

这绕过了您在问题中提到的带宽问题。目前,许多初创企业和成熟的服务提供商正在开发基于WebRTC的会议解决方案,让您最喜欢的web搜索引擎来举一些例子吧


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

您是对的,对等服务器之间的带宽自适应是一个问题

TURN服务器并不能解决这个问题,因为它所做的只是提供一个稳定的端点,通常是为那些执行非常严格的NAT设置的人提供

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

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

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

如果您实现了视频会议服务器,您可以进入低于WebRTC级别的VP8流,对每个视频流进行必要的更改,并解决带宽自适应问题。

当由于防火墙或其他网络问题而无法实现直接对等连接时,TURN服务器充当后备中继服务器,以便启用连接。(更多信息:按P键查看扬声器备忘。)TURN服务器不是为媒体分发而设计的

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

这是一台专门用来分发媒体的服务器, 能够处理大量的参与者;它也可以做得很聪明 比如选择性流转发,音频或视频的混合, 或者录音


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

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


有了媒体服务器,每个对等方都会连接到媒体服务器,然后服务器会将来自对等方的视频流并排放在一起,然后向您发送新的视频流。这就省去了同行从其他同行下载流的麻烦。

中的类似线程,因此无法在WebRTC浏览器中使用VP8可伸缩性支持(您无法使用现有API访问)。Hangout使用simulcast(在现有API中受支持)发送具有不同质量的流的多个版本,以便服务器(转发单元)能够选择发送到每个目的地的版本。