WebRTC单向视频通话

时间:2018-04-24 12:47:14

标签: video-streaming webrtc sdp oneway

我们正在摆弄我们公司的WebRTC。我偶然发现了一个奇怪的事情,我不确定是WebRTC中的设计还是我们方面的实施错误。

我们目前有一个简单的WebApp,它显示在线联系人的联系人列表。现在可以简单地呼叫联系人列表中的任何用户。

来电者和被叫者可以自由选择分享网络摄像头和/或音频。然后由GetUserMedia()(MediaConstraints)尊重它。

现在奇怪的是:如果呼叫者启用视频启动,则客户端(Chrome 65)仅协商视频呼叫。如果来电者没有提供他的网络摄像头,我们就不会让被叫网络摄像头回传(如果他允许的话)。

但是当呼叫者在启用网络摄像头的情况下启动呼叫并且Callee决定不显示他的呼叫时,一切都按预期工作。 (只有来电者有直播)。

如果双方同意展示视频,我们会获得双重视频流。

如果这意味着这样,任何人都有一些内部知识吗?是不是可以在没有显示自己的网络摄像头的情况下给某人打电话,但后来又看到了被监控的摄像头?

提前致谢, 斯文

2 个答案:

答案 0 :(得分:1)

尝试使用pc.createOffer({offerToReceiveVideo:true}),而不是在没有这些限制的情况下调用它。

答案 1 :(得分:0)

菲利普的回答很有效。但是,现在建议的选项是 marked legacy,不应再使用。执行此操作的新方法是在创建报价之前向连接添加视频收发器:

connection.addTransceiver('video');
// this step seems to be optional:
connection.getTransceivers().forEach(t => t.direction = 'recvonly');

connection.createOffer();

归功于https://niccoloterreri.com/webrtc-with-transceivers。有关可选步骤,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver/direction