3. Codec Requirements (コーデック要件)
WebRTCエンドポイント間の基本的な相互運用性レベルを確保するために、以下では必要なコーデックの最小セットを規定します。WebRTCエンドポイントが使用できる他の適切な音声コーデックが利用可能な場合、音声トランスコーディングの必要なくセッションを確立できる可能性を最大化するために、それらもオファーに含めることが推奨されます (RECOMMENDED)。
WebRTCエンドポイントは、以下の音声コーデックを実装することが必須です (REQUIRED):
-
Opus [RFC6716]。ペイロード形式は [RFC7587] で規定されています。
-
PCMA および PCMU(ITU-T勧告G.711 [G.711] で規定)。ペイロード形式は [RFC3551] のセクション4.5.14で規定されています。
-
[RFC3389] コンフォートノイズ (Comfort Noise, CN)。WebRTCエンドポイントは、G.711または独自のCNメカニズムを提供しない他のサポートされているコーデックでエンコードされたストリームに対して [RFC3389] CNをサポートしなければなりません (MUST)。Opusは独自のCNメカニズムを提供するため、Opusで [RFC3389] CNを使用することは推奨されません (NOT RECOMMENDED)。送信者による不連続送信 (Discontinuous Transmission, DTX) / CNの使用は任意です (OPTIONAL)。
-
'audio/telephone-event' メディアタイプ([RFC4733] で規定)。エンドポイントはいつでもDTMFイベントを送信してもよく (MAY)、インバンドのデュアルトーン多重周波数 (dual-tone multi-frequency, DTMF) トーン(ある場合)を抑制すべきです (SHOULD)。WebRTCエンドポイントが生成するDTMFイベントは、8000ミリ秒以下かつ40ミリ秒以上の継続時間でなければなりません (MUST)。各トーンの推奨されるデフォルト継続時間は100ミリ秒です。イベント間の間隔は30ミリ秒以上でなければなりません (MUST)。推奨されるデフォルトの間隔継続時間は70ミリ秒です。WebRTCエンドポイントは、送信されたトーン(RFC 4733で規定)に対して、適切に破棄する以外の処理を行う必要はありません。現在、受信したDTMFまたは他のトーン(RFC 4733で規定)についてJavaScriptに通知するAPIはありません。WebRTCエンドポイントは、以下のイベントを生成および消費できることが必須です (REQUIRED):
| イベントコード (Event Code) | イベント名 (Event Name) | 参照 (Reference) |
|---|---|---|
| 0 | DTMF数字 "0" | [RFC4733] |
| 1 | DTMF数字 "1" | [RFC4733] |
| 2 | DTMF数字 "2" | [RFC4733] |
| 3 | DTMF数字 "3" | [RFC4733] |
| 4 | DTMF数字 "4" | [RFC4733] |
| 5 | DTMF数字 "5" | [RFC4733] |
| 6 | DTMF数字 "6" | [RFC4733] |
| 7 | DTMF数字 "7" | [RFC4733] |
| 8 | DTMF数字 "8" | [RFC4733] |
| 9 | DTMF数字 "9" | [RFC4733] |
| 10 | DTMF数字 "*" | [RFC4733] |
| 11 | DTMF数字 "#" | [RFC4733] |
| 12 | DTMF数字 "A" | [RFC4733] |
| 13 | DTMF数字 "B" | [RFC4733] |
| 14 | DTMF数字 "C" | [RFC4733] |
| 15 | DTMF数字 "D" | [RFC4733] |
エンドポイントが8 kHzを超えるサンプリングレートで音声を処理できるすべての場合において、PCMA/PCMUの前にOpusを提供することが推奨されます (RECOMMENDED)。Opusの場合、デコーダ側ですべてのモードをサポートしなければなりません (MUST)。エンコーダ側のモードの選択は実装者に委ねられます。エンドポイントは、特定のモードまたはptimeの選好を示すためにオファー/アンサーメカニズムを使用してもよい (MAY) です。
上記の必須実装コーデック以外のコーデックの実装に関する追加情報については、[RFC7875] を参照してください。