1. 完全修飾コーデック文字列
コーデック文字列は "opus" です。
2. EncodedAudioChunk データ
Opus を含む EncodedAudioChunk
は、2 つの異なる形式のいずれかになります。
ビットストリームが opus
形式の場合、
EncodedAudioChunk
は、第
3 節の [OPUS]
で説明されている Opus パケットでなければなりません。
ビットストリームが ogg
形式の場合、
EncodedAudioChunk
は、第
3 節の [OPUS-IN-OGG] で説明されている音声データパケットでなければなりません。
3. AudioDecoderConfig の description
description
は、[OPUS-IN-OGG] の第 5.1 節で説明されている識別
ヘッダーに任意で設定できます。
description
が設定されている場合、ビットストリームは
ogg
形式であると見なされます。
description
が設定されていない場合、ビットストリームは
opus
形式であると見なされます。
4. EncodedAudioChunk の型
Opus を含む EncodedAudioChunk
の [[type]]
は常に「key」です。
注: 初期化が成功すると、どのパケットも エラーなしでいつでも デコードできますが、期待される音声出力が得られない場合があります。
5. プライミングサンプル
識別ヘッダーの Pre-skip フィールド([OPUS-IN-OGG] の第 5.1 節を参照)が description
に存在する場合、AudioDecoder
の
[[priming samples to discard]]
内部スロットの初期値を指定します。description
が存在しない場合、[[priming samples to discard]]
は 0 に初期化されます。デコードされた EncodedAudioChunk
は追加の破棄情報を伝達しません。
6. AudioEncoderConfig の拡張
partial dictionary AudioEncoderConfig {OpusEncoderConfig opus ; };
opus, 型は OpusEncoderConfig- Opus コーデック固有の構成オプションを含みます。
6.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] の第 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-
第 2.1.9 節で説明されているように、エンコーダーの計算複雑度を構成します。
[RFC6716]。有効な範囲は
0から10までで、10は最も高い 複雑度を表します。値が指定されていない場合、デフォルト値はプラットフォーム固有です: ユーザーエージェントは、モバイル プラットフォームではデフォルトを5に、それ以外のすべてのプラットフォームではデフォルトを9に設定することが SHOULD です。 packetlossperc, 型は unsigned long、デフォルトは0-
エンコーダーが予期するパケット損失率を構成します。有効な範囲は
0から100です。注: パケット損失率は エンコードの途中で更新される場合があり、 ユーザーエージェントはこれらの再構成をサポートすることが推奨されます。
useinbandfec, 型は boolean、デフォルトはfalse- [RFC6716] の第 2.1.7 節で説明されているように、エンコーダーが Opus のインバンド前方誤り訂正 (FEC) を提供するかどうかを指定します。
usedtx, 型は boolean、デフォルトはfalse- [RFC6716] の第 2.1.9 節で説明されているように、エンコーダーが不連続送信 (DTX) を使用するかどうかを指定します。
6.2. OpusBitstreamFormat
enum {OpusBitstreamFormat "opus" ,"ogg" , };
OpusBitstreamFormat
は、エンコードされた音声ストリームをデコードするために追加データが
必要かどうかを決定します。
opus- エンコードされた音声ストリームをデコードするためにメタデータは必要ありません。
ogg-
エンコードされた音声ストリームのメタデータは、構成時に
AudioDecoderConfig.descriptionを介して提供されます。
6.3. OpusSignal
enum {OpusSignal "auto" ,"music" ,"voice" , };
OpusSignal
は、エンコードされる信号の種類のデフォルト値を示します。
auto- 音声信号が特定の種類であることは指定されません。
music- 音声信号は音楽です。
voice- 音声信号は声または発話です。
6.4. OpusApplication
enum {OpusApplication "voip" ,"audio" ,"lowdelay" , };
OpusApplication
は、エンコーダーが意図する
用途のデフォルト値を示します。
voip- 音声明瞭度を向上させるように信号を処理します。
audio- 元の入力への忠実性を優先します。
lowdelay- 特定の動作モードを無効にすることで、可能な限り最小の符号化遅延を 構成します。
7. プライバシーに関する考慮事項
[WEBCODECS] の プライバシーに関する 考慮事項の節を参照してください。
8. セキュリティに関する考慮事項
[WEBCODECS] の セキュリティに関する 考慮事項の節を参照してください。