1. 完全修飾されたコーデック文字列
コーデック文字列は "opus" である。
2. EncodedAudioChunk データ
Opus を含むEncodedAudioChunk
は、2つの異なる形式のいずれかであり得る。
ビットストリームがopus
形式である場合、
EncodedAudioChunk
は、[OPUS]のsection
3で説明される Opus パケットでなければならない。
ビットストリームがogg
形式である場合、
EncodedAudioChunk
は、[OPUS-IN-OGG]のsection
3で説明される音声データパケットでなければならない。
3. AudioDecoderConfig description
description
は、[OPUS-IN-OGG]の section 5.1 で説明される Identification
Header に任意で設定できる。
description
が設定されている場合、ビットストリームは
ogg
形式であると仮定される。
description
が設定されていない場合、ビットストリームは
opus
形式であると仮定される。
4. EncodedAudioChunk type
Opus を含むEncodedAudioChunkについて、
[[type]]
は常に “key”
である。
注: 初期化が成功すると、任意のパケットは いつでもエラーなしで復号できるが、期待される音声出力にならない可能性がある。
5. AudioEncoderConfig 拡張
partial dictionary AudioEncoderConfig {OpusEncoderConfig opus ; };
opus, 型は OpusEncoderConfig- Opus コーデックのコーデック固有の構成オプションを含む。
5.1. OpusEncoderConfig
dictionary {OpusEncoderConfig OpusBitstreamFormat format = "opus";OpusSignal signal = "auto";OpusApplication application = "audio"; [EnforceRange ]unsigned long long frameDuration = 20000; [EnforceRange ]unsigned long complexity ; [EnforceRange ]unsigned long packetlossperc = 0;boolean useinbandfec =false ;boolean usedtx =false ; };
OpusEncoderConfig
が妥当かどうかを確認するには、次の手順を実行する:
-
frameDurationが有効なフレーム継続時間でない場合、 これは[RFC6716]の section 2.1.4 で説明されており、falseを返す。 -
complexityが指定されており、かつ0から10までの範囲に含まれない場合、falseを返す。 -
packetlosspercが指定されており、かつ0から100までの範囲に含まれない場合、falseを返す。 -
trueを返す。
format, 型は OpusBitstreamFormat、既定値は"opus"-
出力される
EncodedAudioChunkの形式を構成する。OpusBitstreamFormatを参照。 signal, 型は OpusSignal、既定値は"auto"-
符号化される音声信号の種類を指定する。
OpusSignalを参照。 application, 型は OpusApplication、既定値は"audio"-
エンコーダーの意図された用途を指定する。
OpusApplicationを参照。 frameDuration, 型は unsigned long long、既定値は20000-
出力される
EncodedAudioChunkのフレーム継続時間をマイクロ秒単位で構成する。 complexity, 型は unsigned long-
[RFC6716]の section 2.1.9.
で説明されるように、エンコーダーの計算複雑度を構成する。有効な範囲は
0から10までであり、10が最高の 複雑度を表す。値が指定されていない場合、既定値はプラットフォーム固有である: User Agent は、モバイル プラットフォームでは既定値を5に、その他すべてのプラットフォームでは既定値を9に設定するべきである。 packetlossperc, 型は unsigned long、既定値は0-
エンコーダーが想定するパケット損失率を構成する。有効な範囲は
0から100までである。注: パケット損失率はエンコードの過程で 更新される可能性があり、User Agent はこれらの再構成をサポートすることが推奨される。
useinbandfec, 型は boolean、既定値はfalse- [RFC6716]の section 2.1.7. で説明されるように、エンコーダーが Opus の帯域内前方誤り訂正 (FEC) を提供するかどうかを指定する。
usedtx, 型は boolean、既定値はfalse- [RFC6716]の section 2.1.9. で説明されるように、エンコーダーが不連続送信 (DTX) を使用するかどうかを指定する。
5.2. OpusBitstreamFormat
enum {OpusBitstreamFormat "opus" ,"ogg" , };
OpusBitstreamFormat
は、符号化された音声ストリームを復号するために
追加データが必要かどうかを決定する。
opus- 符号化された音声ストリームを復号するためにメタデータは不要である。
ogg-
符号化された音声ストリームのメタデータは、構成時に
AudioDecoderConfig.descriptionを介して提供される。
5.3. OpusSignal
enum {OpusSignal "auto" ,"music" ,"voice" , };
OpusSignal
は、符号化される信号の種類の既定値を示す。
auto- 音声信号は特定の種類として指定されていない。
music- 音声信号は音楽である。
voice- 音声信号は声または発話である。
5.4. OpusApplication
enum {OpusApplication "voip" ,"audio" ,"lowdelay" , };
OpusApplication
は、エンコーダーの意図された用途の既定値を示す。
voip- 発話の明瞭度を向上させるために信号を処理する。
audio- 元の入力への忠実性を優先する。
lowdelay- 特定の動作モードを無効にすることで、可能な限り最小の符号化遅延を構成する。
6. プライバシーの考慮事項
[WEBCODECS]のプライバシーの 考慮事項セクションを参照。
7. セキュリティの考慮事項
[WEBCODECS]のセキュリティの 考慮事項セクションを参照。