【问题标题】:WebRTC Remote video not showing up on non-localhostWebRTC 远程视频未显示在非本地主机上
【发布时间】:2014-08-13 20:59:16
【问题描述】:

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

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

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

我想我会总结一下我的过程:

  • 等到房间里有两个人

  • 调用者创建报价描述,并将其发送给应答者

  • 回答者要么接受,要么排队等待回答,直到准备好回答

  • 应答器已准备就绪(已建立对等连接)

  • 应答者设置远程描述

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

  • 调用者设置远程描述

  • 一旦两个节点都设置了描述,就添加所有候选冰(在队列中)

  • 每当您收到对等远程流时,添加它

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

编辑

您可以找到demo app here。您可以在地址栏中更改房间

这里有四位候选人在调用者方面。还有两个我没发过

  • 对象{类型:“候选人”,标签:0,id:“音频”,候选人: “a=候选人:2036686134 1 udp 2122260223 10.142.85.73 35544 类型主机 第 0 代↵"}

  • 对象{类型:“候选人”,标签:1,id:“视频”,候选人: “a=候选人:2036686134 1 udp 2122260223 10.142.85.73 35544 类型主机 第 0 代↵"}

  • 对象{类型:“候选人”,标签:0,id:“音频”,候选人: “a=候选人:937861574 1 tcp 1518280447 10.142.85.73 0 类型主机 第 0 代↵"}

  • 对象{类型:“候选人”,标签:1,id:“视频”,候选人: “a=候选人:937861574 1 tcp 1518280447 10.142.85.73 0 类型主机 第 0 代↵"}

...

【问题讨论】:

  • 那么,它在同一个网络上有效,但在人们在不同网络上时无效?两者都向信令服务器发送信号好吗?你能看到正在交换的 IceCandidates 吗?
  • @bwtrent 是的,你说的一切都是正确的。我发布了一些冰候选样本
  • 正在生成的候选人都没有公共 IP 地址。 ICE 的设置有些奇怪……
  • 哦...有趣。我应该寻找什么?他们看起来至少对我来说是公开的哈哈(不是 127.0.0.1 或 192.168.x.x)
  • 尝试将你的 ICE 服务器分成不同的对象(我不知道 coffeescript),但是 JS 应该是这样的:this.pcConfig = { iceServers: [ { url: "stun:stun.l.google.com:19302" }, { url: "turn:numb.viagenie.ca", credential: "drfunk", username: "toadums@hotmail.com"} ] };

标签: javascript coffeescript webrtc


【解决方案1】:

您的 Turn 和 stun 服务器似乎无法正常工作以获取适当的 ICE 候选公共 IP 地址。

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

【讨论】:

  • 是的,这似乎是问题所在。我将我的回合/眩晕服务器换成了我知道从示例中工作的服务器,并且修复了它
  • @Toadums :我可以知道您使用哪些转弯/眩晕服务器来解决您的问题吗?我的应用程序也遇到了同样的问题。
猜你喜欢
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2020-06-08
  • 2013-09-25
  • 1970-01-01
  • 2018-04-27
相关资源
最近更新 更多