Javascript WebRTC-如何区分通过同一连接发送的两个MediaStreamTrack?

Javascript WebRTC-如何区分通过同一连接发送的两个MediaStreamTrack?,javascript,webrtc,mediastreamsource,Javascript,Webrtc,Mediastreamsource,我想使用WebRTC将两个视频流从Peer1发送到Peer2:以前后摄像头为例 从概念上讲,Peer2如何知道哪个流来自哪个摄像头 提到所有的MediaStream和MediaStreamTrack字段都是只读的,所以我不能直接向它们附加任何信息。我不能通过信令通道发送像{“stream1 id”:“camera”,“stream2 id”:“screenshare”}这样的字典,因为Peer2将为每个流和磁道生成自己的id。 因此,在浏览器支持自定义msid之前,似乎无法完成此操作。msid已

我想使用WebRTC将两个视频流从Peer1发送到Peer2:以前后摄像头为例

从概念上讲,Peer2如何知道哪个流来自哪个摄像头

提到所有的
MediaStream
MediaStreamTrack
字段都是只读的,所以我不能直接向它们附加任何信息。我不能通过信令通道发送像
{“stream1 id”:“camera”,“stream2 id”:“screenshare”}
这样的字典,因为Peer2将为每个流和磁道生成自己的id。


因此,在浏览器支持自定义
msid
之前,似乎无法完成此操作。

msid已经受支持-只需读取发送方上每个流的
msid
,然后通过您提到的信令通道发送它们。@xdumaine哪里有msid可用?我不认为它是作为getUserMedia结果创建的流的属性。
In the RTP specification, media streams are identified using the SSRC
field.  Streams are grouped into RTP Sessions, and also carry a
CNAME.  Neither CNAME nor RTP session correspond to a MediaStream.
Therefore, the association of an RTP media stream to MediaStreams
need to be explicitly signaled.

WebRTC defines a mapping (documented in [I-D.ietf-rtcweb-jsep]) where
one SDP media description is used to describe each MediaStreamTrack,
and the BUNDLE mechanism [I-D.ietf-mmusic-sdp-bundle-negotiation] is
used to group MediaStreamTracks into RTP sessions.  Therefore, the
need is to specify the ID of a MediaStreamTrack and its associated
MediaStream for each media description, which can be accomplished
with a media-level SDP attribute.

This document defines a new SDP [RFC4566] media-level "msid"
attribute.  This new attribute allows endpoints to associate RTP
media streams that are described in different media descriptions with
the same MediaStreams as defined in [W3C.WD-webrtc-20150210]., and to
carry an identifier for each MediaStreamTrack in its "appdata" field.