Convert M4B to AAC — Free Online Tool
Convert M4B audiobook files to raw AAC audio, stripping the MPEG-4 container while preserving the underlying AAC-encoded audio stream. This is ideal when you need a lightweight, universally playable audio file without the chapter markers and bookmarking metadata that M4B carries.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your M4B file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
M4B files are MPEG-4 containers that hold AAC-encoded audio alongside chapter metadata, bookmarks, and podcast tags. When converting to AAC, FFmpeg extracts the audio stream and re-encodes it using the native AAC encoder at the specified bitrate (default 128k), discarding the MPEG-4 container entirely. Because both formats use AAC audio, there is some generational quality loss since the already-lossy AAC audio is decoded and re-encoded rather than remuxed — but at 128k or higher this is typically imperceptible. The output is a raw .aac bitstream file, which is smaller and simpler but loses all chapter markers, bookmarking positions, and M4B-specific metadata that streaming apps and audiobook players rely on.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool. In this browser-based tool, FFmpeg runs locally via WebAssembly (FFmpeg.wasm) — no file ever leaves your device. |
-i input.m4b
|
Specifies the input M4B audiobook file. FFmpeg reads the MPEG-4 container, identifying the AAC audio stream, chapter tracks, and any embedded metadata. |
-c:a aac
|
Sets the audio codec to FFmpeg's built-in AAC encoder, which will decode the existing AAC audio from the M4B and re-encode it into a raw AAC bitstream for the output file. |
-b:a 128k
|
Sets the audio bitrate to 128 kilobits per second, a standard quality level for AAC that balances file size and audio fidelity well for audiobook speech content. Increase to 192k or 256k for music-heavy content. |
output.aac
|
The output filename with the .aac extension, telling FFmpeg to write a raw ADTS AAC bitstream file — a containerless format stripped of the M4B's chapter markers, bookmarks, and MPEG-4 metadata. |
Common Use Cases
- Extracting a single continuous audio track from an M4B audiobook to play on older media players or car stereos that support AAC but not the M4B container format
- Preparing an audiobook narration or podcast segment as a bare AAC file for upload to a web platform that accepts AAC but not M4B
- Stripping chapter and DRM-free M4B podcast files down to plain AAC for use in audio editing software that struggles with MPEG-4 container metadata
- Converting self-recorded M4B voice memos or narrations to AAC for embedding in presentations or e-learning authoring tools
- Archiving just the audio content of an M4B file in a raw AAC format for use in environments where container overhead matters, such as embedded systems or mobile apps with strict format requirements
Frequently Asked Questions
Yes, chapter markers are lost entirely in this conversion. AAC as a raw audio format does not support chapters or bookmarking — those features are properties of the MPEG-4 container (.m4b or .m4a), not the AAC audio codec itself. If preserving chapters is important, consider converting to M4A instead, which uses the same MPEG-4 container and can retain chapter metadata.
Because FFmpeg decodes the existing AAC audio to PCM and then re-encodes it as AAC rather than copying the raw bitstream. A direct stream copy to a raw .aac file is theoretically possible but rarely done because the MPEG-4 framing in M4B uses MP4 audio sample entries that don't map cleanly to a raw AAC bitstream without re-muxing. The re-encoding at 128k introduces a second generation of lossy compression, though the quality difference at 128k or above is generally inaudible for speech-heavy audiobook content.
Replace the 128k value in the -b:a 128k flag with your desired bitrate. For audiobooks and spoken-word content, 64k or 96k is often sufficient and produces a noticeably smaller file. For music or high-fidelity content originally encoded at higher bitrates, use 192k or 256k. For example: ffmpeg -i input.m4b -c:a aac -b:a 96k output.aac.
The single-file command shown here processes one file at a time, but you can batch it using a shell loop. On Linux or macOS: for f in *.m4b; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.m4b}.aac"; done. On Windows Command Prompt: for %f in (*.m4b) do ffmpeg -i "%f" -c:a aac -b:a 128k "%~nf.aac". This is especially useful when processing large libraries of DRM-free audiobooks.
Raw AAC files (.aac) have broad compatibility across iOS, Android, and most modern desktop players. However, web browser support for raw AAC bitstreams (as opposed to AAC wrapped in an MP4 or M4A container) can be inconsistent — Safari handles it well, but Chromium-based browsers may require the file to be served with the correct MIME type. If web playback compatibility is a priority, wrapping the output in an M4A container is a safer choice.
Most M4B metadata tags — such as title, artist, album, and track number — are stored in the MPEG-4 container and will be lost in the conversion to a raw AAC bitstream. Embedded cover art is also discarded. If you need to retain metadata, you would need to use a container format like M4A or MP3 that supports ID3 or iTunes-style tags, and explicitly pass metadata flags in the FFmpeg command using -map_metadata 0.
Technical Notes
M4B is a variant of the M4A/MPEG-4 container specifically designed for audiobooks, adding support for chapter tracks (stored as a QuickTime chapter list), playback position bookmarking, and podcast feed metadata. When exporting to raw AAC, none of these container-level features survive — the output is a headerless ADTS (Audio Data Transport Stream) bitstream, which is the simplest form of an AAC file. FFmpeg uses its native AAC encoder (not the higher-quality libfdk_aac, which requires a separately compiled build) for this conversion. The native encoder is competent for bitrates of 128k and above, especially for speech content typical of audiobooks. One practical limitation: raw .aac files cannot store ReplayGain tags, cover art, or chapter cues, making them best suited for intermediate processing steps or playback in players with robust AAC detection. If the source M4B was encoded at a lower bitrate than the output target (e.g., source at 64k, output at 128k), the extra bitrate adds file size without recovering lost quality. Always match or go below the source bitrate when re-encoding lossy audio.