1. 완전한 코덱 문자열
코덱 문자열은 "opus"이다.
2. EncodedAudioChunk 데이터
Opus를 포함하는 EncodedAudioChunk는
두 가지 다른 형식일 수 있다.
비트스트림이 opus
형식인 경우,
EncodedAudioChunk는
3절의
[OPUS]에 설명된 Opus 패킷이어야 한다.
비트스트림이 ogg
형식인 경우,
EncodedAudioChunk는
3절의
[OPUS-IN-OGG]에 설명된 오디오 데이터 패킷이어야 한다.
3. AudioDecoderConfig description
description은
[OPUS-IN-OGG]의 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]의 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은 가장 높은 복잡도를 나타낸다. 값이 지정되지 않은 경우 기본값은 플랫폼별로 다르다: User Agent는 모바일 플랫폼에 기본값5를 설정하고, 그 밖의 모든 플랫폼에는 기본값9를 설정하는 것이 SHOULD다. packetlossperc, 타입 unsigned long, 기본값은0-
인코더가 예상하는 패킷 손실 비율을 구성한다. 유효 범위는
0부터100까지이다.참고: 패킷 손실 비율은 인코딩 과정에서 갱신될 수 있으며, User Agent가 이러한 재구성을 지원하는 것이 권장된다.
useinbandfec, 타입 boolean, 기본값은false- [RFC6716]의 2.1.7절에 설명된 것처럼 인코더가 Opus in-band Forward Error Correction (FEC)을 제공하는지 여부를 지정한다.
usedtx, 타입 boolean, 기본값은false- [RFC6716]의 2.1.9절에 설명된 것처럼 인코더가 Discontinuous Transmission (DTX)을 사용하는지 여부를 지정한다.
5.2. OpusBitstreamFormat
enum {OpusBitstreamFormat "opus" ,"ogg" , };
OpusBitstreamFormat은
인코딩된 오디오 스트림을 디코딩하는 데 extra-data가 필요한지 여부를 결정한다.
opus- 인코딩된 오디오 스트림을 디코딩하는 데 metadata가 필요하지 않다.
ogg-
인코딩된 오디오 스트림의 metadata는 구성 시
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])을 참조하라.