我在两个浏览器站点之间流,一个称为主站点,另一个称为从站点。 Master将视频流传输到slave。 主人总是活跃的,奴隶有时会连接。
我使用此配置启动双方连接:
{'iceServers': [{'url': 'stun:mystunserveraddress'}]},
{'optional': [{'DtlsSrtpKeyAgreement': true},{'RtpDataChannels': true}]}
Master发送不接收音频且没有视频的优惠。 Slave处理提供接收视频的提供和答案。 大师处理答案。
冰候选人在双方处理。 在发送商品之前,视频已连接到对等连接。
我测试了以下Master-> Slave:
的组合为什么它不能用于这些组合?没有错误。一切看起来都很正常,但奴隶上的视频元素是空白的。
从两端提供音频和视频,或者自动不会改变任何内容。
在Firefox master上,我有两个"已连接"状态和Chrome奴隶我有"检查"状态。
我在本地服务器和远程服务器上测试过,行为相同。
它也不适用于AppRTC示例。
答案 0 :(得分:1)
旁注:不要使用RtpDataChannels。它是旧的,它只是Chrome,它是非标准的 - 它甚至没有提出标准。 Chrome现在支持与Firefox互操作的标准RTCDataChannels(pc.createDataChannel(...))。
我强烈怀疑您的视频问题是您的JS代码中的错误,可能依赖于成功回调与其他回调的时间 - 或者对ICE候选人。如果没有返回SetRemoteDescription的Success回调,那么你就不应该添加ICE候选者(排队并在成功后添加)。
如果您使用Linux上的Chrome将apprtc调用到Windows上的Chrome(反之亦然),它是否有效?这应该;这是人们一直在做的事情(在Chrome和Firefox上)。