Summary
The client-side rendering limitations page states:
Firefox does not support encoding AAC audio via WebCodecs. When rendering in Firefox, use Opus audio (WebM container) instead of AAC (MP4 container).
Mediabunny now offers an optional @mediabunny/aac-encoder package (installable via remotion add — see packages/cli/src/extra-packages.ts). @remotion/web-renderer already calls ensureAacEncoderRegistered() from register-aac-encoder.ts, which registers that encoder when native AAC encoding is unavailable.
Why this issue
- The limitation may be overstated for users who have
@mediabunny/aac-encoder installed: AAC in MP4 might work in Firefox after registration.
- Related API docs still say Firefox only returns
["opus"] for getEncodableAudioCodecs() — see the note in get-encodable-audio-codecs.mdx — but getEncodableAudioCodecs in code runs ensureAacEncoderRegistered() first, so behavior may not match the docs.
Suggested work
- Verify in Firefox (with and without
@mediabunny/aac-encoder) whether MP4 + AAC client-side / web rendering works as expected.
- Update
packages/docs/docs/client-side-rendering/limitations.mdx to distinguish native WebCodecs vs. optional Mediabunny encoder, and document when Opus/WebM is still required.
- Align
packages/docs/docs/web-renderer/get-encodable-audio-codecs.mdx (and any similar mentions) with actual runtime behavior after ensureAacEncoderRegistered().
- Optionally cross-link from the limitations section to Mediabunny formats / version docs if we document the AAC encoder extension there.
Labels
documentation / web-renderer as appropriate.
Summary
The client-side rendering limitations page states:
Mediabunny now offers an optional
@mediabunny/aac-encoderpackage (installable viaremotion add— seepackages/cli/src/extra-packages.ts).@remotion/web-rendereralready callsensureAacEncoderRegistered()fromregister-aac-encoder.ts, which registers that encoder when native AAC encoding is unavailable.Why this issue
@mediabunny/aac-encoderinstalled: AAC in MP4 might work in Firefox after registration.["opus"]forgetEncodableAudioCodecs()— see the note inget-encodable-audio-codecs.mdx— butgetEncodableAudioCodecsin code runsensureAacEncoderRegistered()first, so behavior may not match the docs.Suggested work
@mediabunny/aac-encoder) whether MP4 + AAC client-side / web rendering works as expected.packages/docs/docs/client-side-rendering/limitations.mdxto distinguish native WebCodecs vs. optional Mediabunny encoder, and document when Opus/WebM is still required.packages/docs/docs/web-renderer/get-encodable-audio-codecs.mdx(and any similar mentions) with actual runtime behavior afterensureAacEncoderRegistered().Labels
documentation/web-rendereras appropriate.