WebRTC视频会议(多对多)
WebRTC videoconferencing (many-to-many)
我即将使用webRTC+socket.io+node.js构建一个视频会议系统,所以我已经读了这本书作为起点Simon Pietro Romano的《与webRTC的实时通信》,我已经读完了,我将在100Mbps的本地网络上运行这个系统,所以我们将使用网状网络拓扑结构,因为带宽在这里不是问题,我不想专注于此,我只是有一个关于与许多用户合作的简单问题,特别是关于使用这些功能:
var pc // PeerConnection Object
pc.onaddstream = ...//for receiving stream from remote party
pc.setRemoteDescription()...//for setting .sdp file from remote party
我知道我必须在每个对等点上建立对等连接,但假设我有3个用户:a、B和C。
A将是会议室的发起人,然后B加入会议室,在这里A向B发送报价并从B接收答案,A setRemoteDescription(answerB)和B setRemoteDescription(offerA),但当C加入会议室时,A和B将是其发起人,所以他们都将向C发送报价,C将向他们发送答案,这是我的困惑:
当C第一次收到来自A的报价时,这是C setRemoteDescription(offerA),但当收到来自B的报价时这是C setRemoteDescription(offerB),我在这里设置了一个新值,并丢失了来自A的前一个报价,这个过程只是暂时的吗?,C不会再需要A的报价了吗?,我知道这个sdp文件只包含网络浏览器媒体信息。我对onaddstream也有同样的疑问,这个过程是否会自动捕获来自一个对等体的流,然后再捕获来自另一个对等方的流?,第一个接B的流,第二个接C的流,当最后一个加入房间时?,A抓C的时候会失去B的流吗?。
另一方面,addIceCcandidate只是向每个对等体添加远程候选,所以本地对等体有远程对等体路由,它永远不会丢失远程对等体的路由,我想,我说得对吗?
我找到了关于webRTC视频会议的源代码,我看到onaddstream和setRemoteDescription就像是临时功能,一旦设置了对等端之间的连接,这些就不再必要了,我不知道,也许我错了。
提前谢谢。
当C第一次收到A的报价时,这就是CsetRemoteDescription(offerA),但当收到来自B的offer时,这是C setRemoteDescription(offerB),我在这里设置了一个新值失去了A之前的报价,这个程序只是暂时的吗?,C不会再需要A的报价了吗?
您需要在客户端为每个其他参与者建立一个对等连接(pc
),您将执行类似的操作:
socket.on('offer', function(from, data) {
users[from].pc.setRemoteDescription(new RTCSessionDescription(data));
// create answer..
});
请注意,Node服务器正在发送报价以及发送报价的用户的id。此外,users
将包含每个房间参与者的条目,并引用其pc
。您将把每个参与者的远程描述添加到他们自己的pc
中。
互联网上有很多例子,我的就在上面http://github.com/jconde/euphony:)
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- 在webrtc中实时控制视频发送帧速率
- WebRTC-是否可以将浏览器代理视频从源发送到接收器
- 在WebRTC中获取1:1宽高比视频失败
- 使用RecordRTC录制的WebRTC视频在IE和Safari中显示错误
- 如何在WebRTC中始终保持1:1的纵横比视频
- WebRTC onicecandidate :我只用 sdpMid=audio 获得 ICE 候选,但不适用于视频
- Ziggeo,WebRTC无法读取视频文件
- 使用WebRTC对等连接进行两个以上参与者的视频会议是否可行
- 不使用flash的视频会议解决方案
- WebRTC:在SDP中没有捆绑线路的音频通话中添加视频
- WebRTC:多方视频会议
- WebRTC视频限制不起作用
- 使用 GLSL 着色器将 WebRTC 视频传递到几何体中
- 如何在WebRTC视频聊天中添加音频/视频静音/取消静音按钮
- 如何使用Javascript创建WebRTC+PubNub开源视频聊天、语音聊天
- 正在结束两个对等方之间的WebRTC视频呼叫
- WebRTC视频会议(多对多)
- 如何管理视频会议?来自浏览器的需求
- 使用SIPML5开发浏览器对浏览器音频/视频通话;WEBRTC