当用户在不同的网络上时Webrtc没有视频
Posted
技术标签:
【中文标题】当用户在不同的网络上时Webrtc没有视频【英文标题】:Webrtc no video when users are on different network 【发布时间】:2012-10-13 00:14:01 【问题描述】:所以我建立了一个网站。带有一个 clienta 页面和一个 clientb 页面。
这基本上是该网站的拆分版本: https://webrtc-demos.appspot.com/html/pc2.html
我正在使用信号器(websockets)在客户端之间交换信息。
当用户在同一台计算机上打开 cleinta 和 b 时,它可以正常工作。
当用户在一台计算机上打开 clienta 并在另一台计算机上打开 clientb 但两台计算机在同一网络上时,它工作正常。
当用户在一台计算机上打开 clienta 并在另一台计算机上打开 clientb 但在不同的网络上没有视频或音频。
当交换冰消息时,我会传回一个数字,这样我就知道它发送的顺序。在另一端,它们并不总是以相同的顺序到达,但音频#1 总是在音频#2 之前到达那里。视频也是如此。
在所有情况下,我都使用 chrome dev 24。
我意识到顺序和时间是 webrtc 的一切。我只是不明白它如何在同一网络上的不同电脑上工作,而不是在不同的网络上工作。我应该指出,当我说相同的网络时,我在工作中使用 2 台电脑和在家中使用 2 台电脑进行测试。所以我不认为它是防火墙的东西。
有什么想法吗?
我确实查看了https://apprtc.appspot.com/,因为它是一个稍微相关的链接。这导致我添加了几个设置超时,尽管它们似乎没有帮助。
最后一件事,我确实提到了冰消息。我还应该注意,双方都发送和接收所有消息。创建报价并创建答案。因此,它可以在相同的网络机器上运行。
更新:
我正在使用 jsep 和根据 webrtc.org 的所有最新语法
2012 年 11 月 15 日更新:
那么有没有用于创建媒体中继的开源包?
特别是 .net,但可能是 php。当前站点是面向公众的,这就是我能够在多个网络上进行测试的方式。所以看起来我只需要另一个端点来进行媒体中继。
2012 年 11 月 16 日更新:
希望我能让它工作或从其他开发人员那里获得宝贵的意见,我将我的代码放在 github 上。
https://github.com/thorst/RTC
2012 年 11 月 21 日更新
该代码现在适用于除不同网络连接之外的所有内容。 (如本文所述)
2013 年 5 月 28 日更新
今年 google io 在解释转弯、眩晕和冰方面要好得多。
http://www.youtube.com/watch?feature=player_embedded&v=p2HzZkd2A40
这里的参考是老年人帮助我入门
http://www.youtube.com/watch?v=E8C8ouiXHHk
http://www.youtube.com/watch?v=dAhhniqwkp8
【问题讨论】:
【参考方案1】:Chrome 还没有实现 TURN。 STUN 仅对某些类型的 NAT 有帮助,但对家庭路由器中流行的对称 NAT 没有帮助。您需要一个具有公共 IP 的媒体中继来连接对称 NAT 后面的两个设备,其标准是 TURN https://www.rfc-editor.org/rfc/rfc5766。
【讨论】:
感谢您的回答。所以我根据你的回答假设 TURN 将在未来某个时候由 chrome 实现?以上是关于当用户在不同的网络上时Webrtc没有视频的主要内容,如果未能解决你的问题,请参考以下文章
当用户将鼠标悬停在 TreeView 控件的特定 TreeNode 控件上时显示不同的光标
Android IOS WebRTC 音视频开发总结(七一)-- H265/H264有何不同
WebRTC 错误:无法创建远程会话描述。在错误的状态下调用
R - 当用户在不同的页面上时,闪亮的数据表(renderDataTable)重新加载到第一页并更新某个列值(selectInput)