WebRTC - как провести различие между двумя MediaStreamTracks, отправленными по одному и тому же соединению?
Я хочу отправить два видеопотока с Peer1 на Peer2, используя WebRTC: давайте использовать переднюю и заднюю камеру в качестве примера.
Концептуально, как Peer2 узнает, какой поток поступает с какой камеры?
В документации MediaStream упоминается, что все MediaStream
а также MediaStreamTrack
поля доступны только для чтения, поэтому я не могу прикрепить к ним какую-либо информацию. Я не могу отправить словарь, как {"stream1 id": "camera", "stream2 id": "screenshare"}
через канал сигнализации, потому что Peer2 будет генерировать свой собственный идентификатор для каждого потока и дорожки.
1 ответ
https://tools.ietf.org/html/draft-ietf-mmusic-msid-11
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.
Таким образом, кажется, что это не может быть сделано до обычая msid
поддерживается браузерами.