メインコンテンツまでスキップ

1. Introduction (はじめに)

1.1. Terminology (用語)

本ドキュメントは [RFC8825] の用語を使用する. さらに, 以下の用語を次のとおり用いる:

RTP stream: メディアデータを含む RTP パケットのストリーム [RFC7656].

MediaStream: MediaStreamTrack の集合 [W3C.CR-mediacapture-streams]. 1 つの MediaStream は, 同じ種類でも異なる種類でもよい, 複数の MediaStreamTrack を含められる.

MediaStreamTrack: [W3C.CR-mediacapture-streams] で, メディアデータの一方向フロー (音声またはビデオのいずれか一方, 両方ではない) として定義される. [RFC7656] の用語「ソースストリーム (source stream)」に対応する. 1 つの MediaStreamTrack は, 0 個, 1 個, または複数の MediaStream に存在し得る.

Media description: [RFC4566] で, m= フィールドで始まり, 次の m= フィールドまたはセッション記述の終わりまでのフィールドの集合として定義される.

本ドキュメントにおけるキーワード「MUST」, 「MUST NOT」, 「REQUIRED」, 「SHALL」, 「SHALL NOT」, 「SHOULD」, 「SHOULD NOT」, 「RECOMMENDED」, 「NOT RECOMMENDED」, 「MAY」, および 「OPTIONAL」は, ここに示すとおりすべて大文字で現れる場合に限り, BCP 14 [RFC2119] [RFC8174] に記載のとおりに解釈される.

1.2. Structure of This Document (本ドキュメントの構成)

本ドキュメントは, Session Description Protocol (SDP) [RFC4566] に, RTP ストリームに識別子を付与し, それらが形成するグループに識別子を付与できる新しいメカニズムを追加する. WebRTC [RFC8825] での使用を想定して設計されている.

セクション 1.3 は, 新しいメカニズムが必要な背景を述べる.

セクション 2 は, 新しいメカニズムの定義を与える.

セクション 3 は, WebRTC API [W3C-WebRTC] を支えるために, MediaStreamTrack を MediaStream に関連付ける msid 属性の使用に必要な意味情報と手順を与える.

1.3. Why a New Mechanism Is Needed (新しいメカニズムが必要な理由)

メディアが RTP [RFC3550] で運ばれる場合, 各 RTP ストリームは RTP セッション内でその Synchronization Source (SSRC) によって区別される. 各 RTP セッションは, 他のすべての RTP セッションとは異なるトランスポート関連付け上にあることで区別される (厳密には RTP 用と RTP Control Protocol (RTCP) 用の 2 つのトランスポート関連付けであり, RTP/RTCP の多重化 [RFC5761] を用いない限り).

SDP [RFC4566] は, 複数のメディア記述を含み得る SDP セッションを記述する形式を与える. [RFC8829] で用いられるモデルによれば, 各メディア記述はちょうど 1 つのメディアソースを記述する. 複数のメディアソースが 1 つの RTP セッションで運ばれる場合, これは BUNDLE [RFC8843] を用いてシグナルされる. BUNDLE を用いない場合, 各メディアソースは独自の RTP セッションで運ばれる.

SDP Grouping Framework [RFC5888] はメディア記述をグループ化するのに使える. しかし WebRTC のユースケースでは, アプリケーションがメディア記述とグループとの関連についてアプリケーションレベルの情報を指定する必要がある. SDP Grouping Framework ではそれは不可能である.

1.4. The WebRTC MediaStream

W3C WebRTC API 仕様 [W3C-WebRTC] は, WebRTC エンティティ間の通信が MediaStreamTrack を含む MediaStream を介して行われることを規定する. MediaStreamTrack は一般に RTP セッション内の単一の SSRC を用いて運ばれ, RTP ストリームを形成する. 用語の衝突は不幸なことである. 前方誤り訂正やシムルキャストなどの機能を支えるために, 追加の SSRC や追加の RTP セッション内の SSRC が存在し得る. これらの追加 SSRC は本仕様の対象外である.

MediaStreamTrack は一方向であり, メディアを一方向にのみ運ぶ.

RTP 仕様では, RTP ストリームは SSRC フィールドで識別される. ストリームは RTP セッションにグループ化され, CNAME も運ぶ. CNAME も RTP セッションも MediaStream に対応しない. したがって, RTP ストリームと MediaStream の関連付けは明示的にシグナルされなければならない.

WebRTC は ([RFC8829] に記載の) マッピングを定義する. そこでは各 SDP メディア記述が各 MediaStreamTrack を記述するのに用いられ, BUNDLE メカニズム [RFC8843] が MediaStreamTrack を RTP セッションにグループ化するのに用いられる. したがって, 各メディア記述について MediaStreamTrack とそれに関連する MediaStream の識別子 (ID) を指定する必要があり, これはメディアレベルの SDP 属性で実現できる.

この用法はセクション 3 で述べる.