FLAC WebCodecs 등록

W3C 그룹 초안 노트,

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2025/DNOTE-webcodecs-flac-codec-registration-20250514/
최신 공개 버전:
https://www.w3.org/TR/webcodecs-flac-codec-registration/
편집자 초안:
https://w3c.github.io/webcodecs/flac_codec_registration.html
이전 버전:
이력:
https://www.w3.org/standards/history/webcodecs-flac-codec-registration/
피드백:
GitHub
편집자:
Paul Adenot (Mozilla)
Eugene Zemtsov (Google LLC)
전 편집자:
Bernard Aboba (Microsoft Corporation)
Chris Cunningham (Google Inc.)
참여:
Git 저장소.
이슈 제출.
버전 이력:
https://github.com/w3c/webcodecs/commits

초록

이 등록은 [webcodecs-codec-registry]에 입력됩니다. 이는 FLAC에 대해 (1) 완전히 한정된 코덱 문자열, (2) 코덱별 EncodedAudioChunk [[internal data]] 바이트, (3) AudioDecoderConfig.description 바이트, (4) EncodedAudioChunk [[type]]의 값, 그리고 (5) AudioEncoderConfig에 대한 코덱별 확장을 설명합니다.

이 등록은 코덱 형식이 지식재산권 주장에 의해 제한되는지 여부에 관한 어떠한 정보도 포함하려는 것이 아닙니다. 구현자와 저자는 특정 코덱 형식을 구현하거나 사용하려는 경우 이 문제에 관해 적절한 법률 자문을 구하는 것이 권고됩니다. WebCodecs 구현자는 FLAC 코덱을 지원할 필요가 없습니다.

이 등록은 비규범적입니다.

이 문서의 상태

이 섹션은 이 문서가 공개된 시점의 상태를 설명합니다. 현재 W3C 공개 문서 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인 https://www.w3.org/TR/에서 찾을 수 있습니다.

이 명세에 대한 피드백과 의견을 환영합니다. 이 명세에 관한 논의에는 GitHub Issues를 사용하는 것이 좋습니다. 또는 Media Working Group의 메일링 리스트인 public-media-wg@w3.org (아카이브)로 의견을 보낼 수 있습니다. 이 초안은 아직 워킹 그룹에서 논의해야 할 일부 보류 중인 이슈를 강조 표시합니다. 이러한 이슈가 유효한지 여부를 포함하여 그 결과에 관해서는 아직 어떠한 결정도 내려지지 않았습니다.

이 문서는 Media Working GroupNote track을 사용하여 Group Draft Note로 공개했습니다.

Group Draft Note는 W3C나 그 회원의 승인을 받은 것이 아닙니다.

이 문서는 초안 문서이며 언제든지 다른 문서로 갱신, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업 이외의 것으로 인용하는 것은 부적절합니다.

W3C 특허 정책은 이 문서에 대해 어떠한 라이선스 요구사항이나 약속도 부과하지 않습니다.

이 문서는 2023년 11월 03일 W3C Process Document의 지배를 받습니다.

1. 완전히 한정된 코덱 문자열

코덱 문자열"flac"입니다.

2. EncodedAudioChunk 데이터

EncodedAudioChunk [[internal data]][FLAC]에 설명된 "FRAME"일 것으로 기대됩니다.

3. AudioDecoderConfig 설명

description은 필수이며, 다음이어야 합니다:

sampleRatenumberOfChannels 멤버는 디코더가 description에서 찾는 내용으로 재정의됩니다.

참고: 이는 오디오 프레임 이전의 FLAC 비트스트림 시작 부분에 해당합니다.

4. EncodedAudioChunk 타입

FLAC을 포함하는 EncodedAudioChunk에 대한 [[type]]은 항상 "key"입니다.

참고: 초기화가 성공하면 어떤 FLAC 패킷도 언제든지 오류 없이 디코드될 수 있지만, 이것이 기대한 오디오 출력으로 이어지지 않을 수도 있습니다.

5. AudioEncoderConfig 확장

partial dictionary AudioEncoderConfig {
  FlacEncoderConfig flac;
};

flac, 타입은 FlacEncoderConfig
FLAC 코덱에 대한 코덱별 구성 옵션을 포함합니다.

5.1. FlacEncoderConfig

dictionary FlacEncoderConfig {
  [EnforceRange] unsigned long blockSize = 0;
  [EnforceRange] unsigned long compressLevel = 5;
};

FlacEncoderConfig가 유효한지 확인하려면 다음 단계를 실행합니다:

  1. blockSize[FLAC]의 섹션 5.1에 설명된 유효한 블록 크기가 아니면, false를 반환합니다.

  2. compressLevel이 지정되어 있고 0(가장 빠름, 가장 적은 압축)과 8(가장 느림, 가장 많은 압축) 사이의 범위에 포함되지 않으면 false를 반환합니다.

  3. true를 반환합니다.

blockSize, 타입은 unsigned long, 기본값은 0
출력 EncodedAudioChunk의 프레임당 사용할 샘플 수를 구성합니다.

참고: 인코더가 기본적으로 blocksize를 추정하도록 하려면 0을 사용하십시오.

compressLevel, 타입은 unsigned long, 기본값은 5
인코딩 중 사용할 압축 수준을 구성합니다.

6. 개인정보 보호 고려사항

개인정보 보호 고려사항 섹션을 [WEBCODECS]에서 참조하십시오.

7. 보안 고려사항

보안 고려사항 섹션을 [WEBCODECS]에서 참조하십시오.

적합성

문서 관례

적합성 요구사항은 설명적 주장과 RFC 2119 용어의 조합으로 표현됩니다. 이 문서의 규범적 부분에서 핵심 단어 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL”은 RFC 2119에 설명된 대로 해석해야 합니다. 그러나 가독성을 위해 이 명세에서는 이러한 단어가 모두 대문자로 나타나지는 않습니다.

이 명세의 모든 텍스트는 명시적으로 비규범적이라고 표시된 섹션, 예제 및 참고를 제외하고 규범적입니다. [RFC2119]

이 명세의 예제는 “for example”이라는 단어로 도입되거나 class="example"을 사용해 규범적 텍스트와 구분됩니다. 다음과 같습니다:

이는 참고용 예제의 한 예입니다.

참고용 노트는 “Note”라는 단어로 시작하며, class="note"을 사용해 규범적 텍스트와 구분됩니다. 다음과 같습니다:

Note, 이는 참고용 노트입니다.

색인

이 명세에서 정의하는 용어

참조에 의해 정의되는 용어

참조

규범적 참조

[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. 1997년 3월. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[WEBCODECS]
Paul Adenot; Eugene Zemtsov. WebCodecs. 2025년 4월 17일. WD. URL: https://www.w3.org/TR/webcodecs/
[WEBIDL]
Edgar Chen; Timothy Gu. Web IDL Standard. Living Standard. URL: https://webidl.spec.whatwg.org/

참고 참조

[FLAC]
Free Lossless Audio Codec. URL: https://datatracker.ietf.org/doc/draft-ietf-cellar-flac
[WEBCODECS-CODEC-REGISTRY]
Paul Adenot; Bernard Aboba. WebCodecs Codec Registry. 2024년 9월 9일. DRY. URL: https://www.w3.org/TR/webcodecs-codec-registry/

IDL 색인

partial dictionary AudioEncoderConfig {
  FlacEncoderConfig flac;
};


dictionary FlacEncoderConfig {
  [EnforceRange] unsigned long blockSize = 0;
  [EnforceRange] unsigned long compressLevel = 5;
};