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절에 설명되어 있습니다.
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-
[RFC6716]의 2.1.9절에 설명된 대로
인코더의 계산 복잡도를 구성합니다.
유효한 범위는
0부터10까지이며,10은 가장 높은 복잡도를 나타냅니다. 값이 지정되지 않은 경우 기본값은 플랫폼에 따라 다릅니다: 사용자 에이전트는 모바일 플랫폼에서는 기본값을5로, 그 밖의 모든 플랫폼에서는 기본값을9로 설정하는 것이 권장됩니다. 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]의 보안 고려 사항 절을 참조하십시오.