Software Archive
Read-only legacy content

本地视频推送给用户出错

song_w_
Beginner
1,174 Views

你好, 我们安装了peerServer。在IE浏览器客户端以用户a登陆,可以把localstream本地视频推送给安卓手机用户b,另外一台安卓手机用户c和浏览器客户端a连接后, 浏览器的本地localstream推送给用户c的时候出错。

我们的问题是:peeserver模式下, 浏览器上的用户视频是否可以同时推送给另外两个不同的用户? 如果可以,那需要注意什么问题呢?

 

谢谢。

0 Kudos
13 Replies
Chunbo_H_Intel1
Employee
1,174 Views

Hi,

Yes, you can push your local stream to other two different clients with two peer connections by the peer server. The only thing which you might need to pay attention is that the sample web application we provide supports only one remote view.

Thanks!

0 Kudos
song_w_
Beginner
1,174 Views

dear chunbo,

      你说的two peer connections 是什么意思? 是需要在网页里面创建两个peerClient吗?

我们只创建了一个peerclient,并且连接了手机用户a,以及手机用户b。把网页端视频推送给a没有问题,但同时推送给用户b的时候就出现错误,错误日志如下:

DEBUG: Peer connection is ready for draining pending streams.
ERROR: create LocalStream failed: [object Object]
   "ERROR:"
   "create LocalStream failed:"
   {
      [functions]: ,
      code: 1100,
      msg: "Can't open video capture device."
   }

DEBUG: Added stream to peer connection.
DEBUG: Sent stream type.

 

  

0 Kudos
song_w_
Beginner
1,174 Views

附件是我们网页端的代码

0 Kudos
song_w_
Beginner
1,174 Views

dear chunbo: 

 我们现在非常急,已经定位了几天了,依然无法找到解决方法。能帮我们尽快看看嘛? 谢谢。

 

0 Kudos
Chunbo_H_Intel1
Employee
1,174 Views

问题的原因是LocalStream不能重复创建。但是可以重复使用。

谢谢。

0 Kudos
song_w_
Beginner
1,174 Views

Dear chunbo:

   我们在代码中确实只创建了一个LocalStream。上面的附件中是我们的代码。 能否帮我们看看到底是啥原因啊?

这个问题已经卡了我们一个多星期了。谢谢。

0 Kudos
Chunbo_H_Intel1
Employee
1,174 Views

推送给a成功,说明Stream创建成功了。后来又报出create LocalStream failed的错误,说明代码逻辑重复创建了local stream。

谢谢!

0 Kudos
song_w_
Beginner
1,174 Views

dear chunbo:

我们今天按照你的意见又检查了一下代码。情况如下:

在localstream创建成功,并且已经publish给用户a的情况下,如果再publish给用户b,intel SDK会自动调用Localstream.create方法并且失败。

可以非常明确的讲,这个重新创建localstream的操作不是由于我们写的代码导致的。我们用intel自带的P2P的例子再publish 给第二个用户的时候会出现一样的错误。dear chunbo,急切的需要你的协助:

1)当把localstream推送给第二个用户的时候,SDK会依据什么判断来自动重新创建localstream?

2)由于woogeen.sdk.js文件打开后是乱码,我们也无法看懂intel的实现逻辑,有什么方法可以看到woogeen.sdk.js文件对应的源码吗?

 

0 Kudos
Chunbo_H_Intel1
Employee
1,174 Views

现在我们的woogeen.sdk.js不是开源的。关于这个问题,已经跟IE Plugin的工程师确认了。我们的实现没有在SDK里主动调用Localstream.create(), 除非application把localstream设置成undefined/null了。这也就是localStream的判断依据。。。

请问,这个逻辑有没有在Chrome(替代IE)上跑过?

谢谢。

0 Kudos
song_w_
Beginner
1,174 Views

dear chunbo, 有几个情况如下:

1)我们没法转到chrome上,因为chrome只支持https。

2)对于这个问题,我们团队已经付出了很多努力,现在认为有很大的可能性是SDK有问题。

3)能否你们那边尝试一下基于sample把localstream同时传给第二个用户看看到底是否有问题。因为我们已经做了很多努力,依然无法解决问题。

4)网上关于intel rtc的使用案例很少,查了很多资料,也没有获得有用的信息。

感谢chunbo支持!!!

0 Kudos
Chunbo_H_Intel1
Employee
1,174 Views

Wei,

是的,现在Chrome上的确只在HTTPS时才能使用摄像头。在我们提供的各种客户端SDK中,IE Plugin的限制较多,而且性能有限。在P2P模式下多路同时转发,IE plugin的adapter层在当前peerconnection的addStream()被调用的时候,始终会去调用activex控件的getUserMedia方法试图启动capture。但是的确没有在SDK里主动调用localstream.create()。最新的版本里IE Plugin仍然是不支持同一个本地流被多个p2p peerconnections共享的。Sample仅是我们提供给客户参考的,在Chrome客户端经过比较多的测试,所以之前我推荐先在Chrome里测试你们localstream的那部分逻辑。。。

请问你们现在使用的版本号是多少?我想在了解你们的实际项目需求之后,会有更好的解决方案。

谢谢!

0 Kudos
song_w_
Beginner
1,174 Views

感谢chunbo给了这么详细的解释。

我们当前使用的是intel webrtc 3.0版本。客户的环境是是安卓定制mobile以及PC网页,网页用到的浏览器是IE11。

目前其他特性都已经开发完毕并通过了客户的确认。但是 PC网页端的本地视频流无法推送给多个用户的问题一直困扰我们。

0 Kudos
Chunbo_H_Intel1
Employee
1,174 Views

谢谢。希望我们能有更近一步的合作。

0 Kudos
Reply