2016-01-04 3 views
2

Я хочу отправить два видеопотока от Peer1 до Peer2 с помощью WebRTC: давайте использовать переднюю и заднюю камеру в качестве примера.WebRTC - как отличить два MediaStreamTracks от одного и того же соединения?

Концептуально, как Peer2 знает, какой поток поступает с какой камеры?

MediaStream documentation упоминает, что все поля MediaStream и MediaStreamTrack доступны только для чтения, поэтому я не могу прикрепить к ним какую-либо информацию. Я не могу отправить словарь как {"stream1 id": "camera", "stream2 id": "screenshare"} по сигнальному каналу, потому что Peer2 будет генерировать свой собственный идентификатор для каждого потока и дорожки.

ответ

0

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 не поддерживается браузерами.

+2

MSID уже поддерживается - просто прочитайте 'msid' на отправителе для каждого потока и отправьте их по каналу сигнализации, как вы упомянули. – xdumaine

+1

@xdumaine Где находится msid? Я не вижу его как свойство потока, созданного в результате getUserMedia. – matejk

Смежные вопросы