【问题标题】:WebRTC: Using own server to counteract quality problems?WebRTC:使用自己的服务器来解决质量问题?
【发布时间】:2020-04-23 10:06:05
【问题描述】:

我正在创建 WebRTC 一对一视频聊天。

我的一位用户告诉我,我的一个竞争对手(也提供 WebRTC 视频聊天)如果连接变差(=像素化视频和断断续续的声音),竞争对手会询问用户是否允许连接通过他们自己的服务器而不是 p2p。

他们为用户提供通过自己的服务器执行此操作的原因可能是什么?那么他们是否使用不同的系统(=不是 WebRTC?)?

我认为没有什么比 p2p 更好的了,所以我不明白我的竞争对手在提供这种解决方法的情况下会做什么。

感谢您提供任何见解。

【问题讨论】:

    标签: webrtc video-conferencing


    【解决方案1】:

    出于几个原因,使用服务器可以为您带来更好的体验。

    • 如果您要发送给多个查看器,则必须在每个接收器之间共享带宽。当您切换到服务器时,您只需上传一次(然后服务器将视频分发给接收者)。

    • 到服务器的网络路由可能比 P2P 调用更好。如果您在 AWS 之类的平台上运行您的服务器,那么两个用户可能拥有更好的服务器网络路径。

    • 服务器可能正在后端进行信号处理。您有 SVC 和 Simulcast 之类的东西,其中发送者将多个“质量级别”上传到服务器,然后服务器决定分发哪一个。

    • 不太可能(但可能)我看过一些公司将使用机器学习来改进视频的​​演示。不过我自己从来没有做过!


    这些都是通过 WebRTC 和常见用例完成的。我的猜测是您的竞争对手正在使用开源 SFU/MCU。存在许多涵盖这些用例的项目。

    【讨论】:

    • 我已经添加了我只需要一对一视频聊天的事实。那么您的答案仍然有效,还是必须更改?请您更详细地解释一下 AWS,好吗?是亚马逊特有的吗?
    • 不,它不是亚马逊特有的。通常最好让您的流量通过主要的托管服务提供商网络然后通过公共跃点。不过你应该测量一下,在某些情况下可能会更糟!
    • 谢谢。你能澄清一下吗?我是否应该默认使用例如“stun.l.google.com”和“turn:numb.viagenie.ca”而不是使用我自己的服务器,并且只有当连接变坏时,我才应该使用自己的服务器?抱歉,我还没收到。