是否可以在WebRtc中组合媒体轨道/流

时间:2015-10-27 02:39:11

标签: google-chrome webrtc getusermedia navigator sdp

我想分享两个网络摄像头,但我不想谈判两套信令流程(SDP,ICE,所有那些爵士乐)。有没有什么方法可以让我将这两个流合并为一个,然后再转发给另一个用户,或者我仍然坚持为我想添加的任何其他流设备进行双重协商。如果这很重要,我也在使用chrome。

3 个答案:

答案 0 :(得分:4)

您可以向对等连接添加多个流,只需为每个流调用pc.addStream。

请注意,目前在SDP中发出信号的方式在Chrome和Firefox之间不兼容。

答案 1 :(得分:1)

正如其他答案中所建议的那样,webRTC允许在PeerConnection中发送多个轨道(这是建立连接的“通道”)。通常会添加多个流,例如屏幕共享和webCam。

因此,您不需要组合流,它们将由另一个对等方单独接收。这样,接收器应用程序可以根据需要自由显示它们。

关于SDP问题,您可以查看https://webrtchacks.com/sdp-anatomy/,这是SDP中每个字段的图形说明,对于故障排除非常有用。

答案 2 :(得分:0)

有一种新方法可以实现这一目标。看看replaceTrack这是新的,最神奇的是:它不需要重新协商,它只是直接替换视频或音频轨道:

// addTrack to remote peer, track does not have to be within stream1/2, but remote will receive that
rtpSender = RTCPeerConnection.addTrack(track, stream1, stream2); 
// use the rtpSender to replace remote track
rtpSender.repalceTrack(track);