Contact emails

tguilb...@google.com

Explainer

None

Specification

https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitratemode

Summary

Some audio codecs support specifying the audio encoder bitrate modes. This
feature adds a "bitrateMode" flag with a default value of “variable” to
WebCodec's AudioEncoderConfig, which mirrors the functionality already
present for VideoEncoderConfig
<https://w3c.github.io/webcodecs/#dom-videoencoderconfig-bitratemode>.

This flag will allow web authors to choose between encoding audio with a
variable bitrate or a constant bitrate. Specific codec encoder
implementations might have slightly different terminology (e.g. `CBR` vs
`VBR` for Opus), but all of them should map to the general concept of
"constant" versus "variable" bitrate.

The two options have the following effects:

   -

   “variable”:  allows an audio encoder to increase or lower its bitrate
   according to the content of the audio it is encoding, in order to preserve
   bandwidth/binary-size, while still maintaining a target quality. For
   example, an encoder might lower its bitrate when encoding silence, and
   revert to a full bitrate when encoding speech.
   -

   “constant” : forces an audio encoder to maintain the same bitrate,
   regardless of the audio content. This can be useful when a predictable
   bandwidth consumption is preferable.


As of M118, this flag will affect two codecs on Chromium: Opus and AAC.



Blink component

Blink>Media>WebCodecs
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EMedia%3EWebCodecs>
TAG review

None

TAG review status

Not applicable

Risks

Interoperability and Compatibility

The risk is low. Firefox has not yet shipped WebCodecs, but is currently
developing it. Safari has developed video WebCodecs, but not yet audio. The
flag should be easy for other browsers to add as they implement WebCodecs.

Gecko: Positive (https://github.com/mozilla/standards-positions/issues/837)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/218)

Web developers: Positive, as feature was originally a developper request –
https://github.com/w3c/webcodecs/issues/649

Other signals:

WebView application risks

This change does not deprecate existing APIs, and only supplements existing
APIs, with a sensible default. This should not be a WebView risk.



Debuggability



Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

It will be at the time it is implemented. Example test
<https://chromium-review.googlesource.com/c/chromium/src/+/4654994/1/third_party/blink/web_tests/external/wpt/webcodecs/audio-encoder-codec-specific.https.any.js>
.

Flag name on chrome://flags

N/A

Finch feature name

N/A


Non-finch justification

Simple parameter change

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1462467

Estimated milestones

Shipping on desktop

118

Shipping on Android

118

Anticipated spec changes

None



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5084320053592064

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABrVPoak2%3DgxnREAhxe83D-BpSD0xF%3DnRFDbSiS8qrF0ZBQB7A%40mail.gmail.com.

Reply via email to