WAV to AAC converter
This is not a listening file: the output is an AAC elementary stream meant for a downstream tool. A muxer that expects an audio track will reject a WAV outright, and wrapping it in MP4 first adds a step the tool does not want.
Sample rate and channel count are carried from the source; ffmpeg does not resample here.
Processed on your device. Files aren’t sent anywhere.
The mismatch is a format problem, not a quality problem
Illustrative: an editor has cleaned-up narration as a 48 kHz stereo WAV and a muxer that expects an AAC audio track. The muxer does not complain about quality; it complains that the input is not the stream type it wants. The fix is one encode, and the choice that matters is bitrate, because the video pipeline already has an audio budget.
One file per run, up to 60 MiB and 600 seconds of audio.
- Drag the WAV onto this page; the local FFmpeg worker loads on first use
- Set the bitrate to the pipeline's audio budget — 128 for narration, 192 by default
- Convert once and read the reported codec, duration and channel count
- Feed the stream to the muxer and test the combined output before committing
What 'raw' means here
A container adds metadata and packaging around a codec. An elementary stream is the codec alone, framed so a decoder can find the boundaries. That distinction is the whole reason this route exists separately from WAV to M4A.
| Output | Consumes well | Reads poorly |
|---|---|---|
| Raw AAC stream | Muxers, streaming encoders, transcode chains | Desktop players that expect a container |
| M4A (MP4 + AAC) | Phones, apps, players that read metadata | Tools that want an unwrapped elementary stream |
| WAV | Editors, measurement tools, importers | Delivery contexts with a size limit |
Verifying the stream before handing it over
The engine probes the encoded file and compares codec and duration with the source; a duration drift beyond a small tolerance is reported as a failure rather than handed over as a shortened stream.
- Check the reported duration against the narration length, not just the file size
- Check the reported channel count if the pipeline expects stereo
- Test the muxed output end to end; a stream that plays alone may still be rejected by the muxer
The stream is disposable; the WAV is not
An elementary stream exists to satisfy one tool in one pipeline. Keep the WAV as the source of truth, because a later pipeline change means a fresh encode from the master rather than a repair of the old stream.
When to prefer a container instead
If the file has to be listened to, or has to carry a title and artwork, an elementary stream is the wrong shape.
- Delivery to devices and apps: use WAV to M4A
- Editing and measurement: keep the WAV, or decode an existing file with MP3 to WAV
- Archive: use WAV to FLAC, which stores the same samples without spending quality