2013-09-16 61 views
8

我正在使用webRTC创建多用户视频聊天。 但我已经遇到了一个问题,RTCPeerConnectionWebRTC偶尔会给出黑屏

在某些情况下,我与每个人都看到了其他人的视频 但有时我从用户那里得到黑屏7个用户聊天。

奇怪的是,它是完全随机的,有时一切正常。有时用户有黑屏。如果该用户重新登录,则会出现其他屏幕变黑或一切正常。

我检查我的PeerConnection这是如何工作的流程,这里是它如何工作对我来说:

启动该PeerConnection等用户:

  • 肯尼思:等连接创建main.js:275
  • kenneth:远程流监听器添加main.js:280
  • kenneth:侦听器远程流删除添加main.js:285
  • kenneth:本地流添加到peerc onnection main.js:264
  • 肯尼斯:优惠创建main.js:293
  • 肯尼斯:优惠发送main.js:315
  • 肯尼斯:回答接收main.js:205
  • 肯尼斯:监听器加入到从回答main.js远程说明set:发送本地ICE候选main.js:210
  • 肯尼斯215
  • 肯尼斯:远程流加入main.js:366
  • 肯尼斯:远程ICE接收main.js:218
  • 午:远程ICE加入到等连接main.js:225
  • 肯尼斯:远程ICE接收main.js:218
  • 肯尼斯:远程ICE加入到等连接main.js:225
  • 肯尼斯:ICE候选发送主。 JS:340
  • 肯尼斯:ICE候选发送main.js:340
  • 肯尼斯:ICE候选发送main.js:340
  • 肯尼斯:ICE候选发送main.js:340
  • 肯尼斯:接收到的远程ICE main.js:218
  • 肯尼斯:远程ICE加入到等连接main.js:225
  • 肯尼斯:远程ICE接收main.js:218
  • 肯尼斯:远程ICE加入到等连接main.js:225
  • 肯尼斯:ICE候选发送主.js:340
  • kenneth:ICE候选人发送main.js:340
  • kenneth:候选人主结束。JS:342

接收的报价的用户,然后创建回答:

  • kennethtest1:提供接收main.js:183
  • kennethtest1:等连接创建main.js:275
  • kennethtest1:为远程流添加的监听器main.js:280
  • kennethtest1:监听器远程流删除添加main.js:285
  • kennethtest1:监听器adde d送当地ICE候选人main.js:189
  • kennethtest1:远程说明从报价main.js设置:194
  • kennethtest1:本地流加入到等连接main.js:198
  • kennethtest1:答案创建主。 JS:301
  • kennethtest1:远程流加入main.js:366
  • kennethtest1:回答发送main.js:324
  • kennethtest1:ICE候选发送main.js:340
  • kennethtest1:ICE候选发送主.js:340
  • kennethtest1:ICE候选发送main.js:340
  • kennethtest1:ICE候选发送main.js:340
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE加入等连接主。 JS:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE加入到等连接main.js:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethte ST1:远程ICE加入到等连接main.js:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE加入到等连接main.js:225
  • kennethtest1:考生主结束。 JS:342
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE加入到等连接main.js:225
  • kennethtest1:远程ICE收到main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js :225

我还检查了镀铬://的WebRTC-内部/ 在那里我可以看到,对于特定黑屏PeerConnection等流是有 但不发送任何数据槽它。

任何人都有一个想法,为什么有时流不打开在这里?

回答

1

通过添加多个STUN服务器而不是仅依赖一个来修复此问题。我已经看到,使用一个谷歌STUN服务器偶尔会发出请求不及时返回,这使得webrtc停止搜索通过媒体流发送的路径。

我从其他的开源供应商加入STUN服务器

+0

对于其他人的参考:黑色遥控器的屏幕大多是冰服务器(或候选人交换)问题,将多台服务器的问题解决了你,但不是一个通用的方法摆脱黑色的远程视图!一些调查表明,如果在答案传输之前传输候选冰球,它也可以有所作为...... – WiRa