1. 완전히 한정된 코덱 문자열
코덱 문자열은 "opus"입니다.
2. EncodedAudioChunk 데이터
Opus를 포함하는 EncodedAudioChunk는
두 가지 다른 형식일 수 있습니다.
비트스트림이 opus
형식인 경우, EncodedAudioChunk는
섹션
3의 [OPUS]에 설명된 Opus 패킷이어야 합니다
비트스트림이 ogg
형식인 경우, EncodedAudioChunk는
섹션
3의 [OPUS-IN-OGG]에 설명된 오디오 데이터 패킷이어야 합니다.
3. AudioDecoderConfig 설명
description은
선택적으로 [OPUS-IN-OGG]의 섹션 5.1에 설명된
Identification Header로 설정할 수 있습니다.
description이
설정된 경우, 비트스트림은 ogg
형식인 것으로 간주됩니다.
description이
설정되지 않은 경우, 비트스트림은
opus
형식인 것으로 간주됩니다.
4. EncodedAudioChunk 타입
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]의 섹션 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]의 섹션 2.1.9에 설명된 대로 인코더의 계산 복잡도를 구성합니다.
유효한 범위는
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)을 사용하는지 여부를 지정합니다.
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]에서 참조하십시오.