WebRTC 远程视频未显示在非本地主机上

Toa*_*ums 5 javascript coffeescript webrtc

我有一个非常简单的 webRTC 1 对 1 视频聊天应用程序。它在本地主机上工作得很好,但我无法让它在不同的网络上工作。我已经在网上尽可能多地阅读了,但似乎没有任何效果。我怀疑我做错了什么,也许其他人可以发现它。

\n\n

我的所有信号似乎都正常工作(我有很多调试输出),所以我认为这不是问题。

\n\n

我在 github 上有所有代码,感兴趣的主要文件是videochat_manager

\n\n

我想我应该总结一下我的过程:

\n\n
    \n
  • 等到房间里有两个人

  • \n
  • 呼叫者创建报价描述,并将其发送给应答者

  • \n
  • 应答者要么接受,要么排队报价直到准备好应答

  • \n
  • 应答者已准备好(已设置对等连接)

  • \n
  • 应答者设置远程描述

  • \n
  • 应答者创建应答描述并将其发送给呼叫者

  • \n
  • 调用者设置远程描述

  • \n
  • 一旦两个对等点都设置了描述,添加所有ice候选者(在队列中)

  • \n
  • 每当您收到对等方的远程流时,将其添加

  • \n
\n\n

这就是我在很高水平上所做的事情。有什么明显的错误吗?

\n\n

编辑

\n\n

您可以在此处找到演示应用程序。您可以在地址栏中更改房间

\n\n

呼叫方有四位候选人。还有两篇我没发过

\n\n
    \n
  • 对象 {类型:“候选”,标签:0,id:“音频”,候选:\n“a=候选:2036686134 1 udp 2122260223 10.142.85.73 35544 典型主机\n代 0 \xe2\x86\xb5”}

  • \n
  • 对象 {类型:“候选”,标签:1,id:“视频”,候选:\n“a=候选:2036686134 1 udp 2122260223 10.142.85.73 35544 典型主机\n代 0 \xe2\x86\xb5”}

  • \n
  • 对象 {类型:“候选”,标签:0,id:“音频”,候选:\n“a=候选:937861574 1 tcp 1518280447 10.142.85.73 0 典型主机\n代 0 \xe2\x86\xb5”}

  • \n
  • 对象 {类型:“候选”,标签:1,id:“视频”,候选:\n“a=候选:937861574 1 tcp 1518280447 10.142.85.73 0 典型主机\n代 0 \xe2\x86\xb5”}

  • \n
\n\n

...

\n

Ben*_*ent 3

您的 Turn 和 stun 服务器似乎没有按照需要的方式工作来获取适当的 ICE 候选公共 IP 地址。

我使用您当前的 ICE 服务器测试了您的演示站点,但没有为我的任何候选人获得公共 IP 地址。尝试一些不同的服务器,看看这是否会改善您的情况。

  • @Toadums:我可以知道你用哪个回合/眩晕服务器来解决你的问题吗?我的应用程序也遇到同样的问题。 (2认同)