Robustness

Does an audio watermark survive AAC transcoding?

AAC 128 kbps passed on Aureal's local fixture matrix. AAC is a family of encoders and bitrates, so the result does not transfer automatically to every AAC implementation. Validate the exact target encoder and keep the result with the distribution record.

Technical basis: Local fixture matrix: AAC 128 kbps Reviewed: 2026-11-02

How Aureal handles it

AAC is used by many platforms and encoders, and the fixture covers one local encoder at 128 kbps. The codec's psychoacoustic model can remove low-level content, especially at low bitrates. Use dual or mid band as a starting point, and test the exact encoder and bitrate your platform uses.

Common failure mode

“AAC and MP3 behave the same, so one test covers both.”

Why it fails: AAC is a family of encoders and bitrates; a result at 128 kbps on one encoder does not transfer to every AAC implementation.

Verified example

Test the target AAC encoder:
ffmpeg -i master.wav -codec:a aac -b:a 128k test.m4a
node aureal-watermark.cjs detect test.m4a --id 883921
Repeat with the encoder and bitrate your platform actually uses.

Example only. Validate against your own audio, codec and processing chain.

Scope and limits

  • Fixture result: AAC 128 kbps on a named local encoder.
  • AAC encoders and bitrates vary.
  • Validate the exact target pipeline.

Frequently asked questions

Does AAC 128 kbps always work?

No. The local fixture passed, but AAC encoders and bitrates vary. Validate the exact encoder and bitrate you distribute.

What about AAC 256 kbps?

The documented tested range includes AAC 64–256 kbps in local fixtures. A pass at one setting is not a universal guarantee; test your target.

Test the actual delivery chain. A fixture result is a starting point, not a guarantee for your material.

Open the Studio →