Convert M4B to WEBA — Free Online Tool
Convert M4B audiobooks to WEBA format, transcoding AAC-encoded chapters into Opus audio inside a WebM container optimized for browser-based playback. Ideal for bringing audiobook audio into web applications that rely on the WebM/Opus stack for streaming and low-latency delivery.
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 store AAC-encoded audio inside an MPEG-4 container along with chapter markers, bookmarks, and ID3-style metadata. WEBA (audio-only WebM) does not support chapters or bookmarking, so this conversion involves a full audio transcode: the AAC stream is decoded and re-encoded as Opus using libopus, then wrapped in a WebM container. Chapter data, bookmarks, and audiobook-specific metadata are not carried over — only the raw audio content is preserved. The -vn flag ensures any incidental video or cover-art streams embedded in the M4B are stripped, producing a clean audio-only WEBA file.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. In the browser-based tool, this runs via FFmpeg.wasm compiled to WebAssembly, executing entirely in your browser with no server upload required. |
-i input.m4b
|
Specifies the input M4B audiobook file. FFmpeg reads the MPEG-4 container, identifying the AAC audio stream, any chapter markers, cover art, and metadata before processing begins. |
-c:a libopus
|
Sets the audio codec to libopus, which fully decodes the incoming AAC audio and re-encodes it as Opus — the native and preferred audio codec for the WebM/WEBA container format used by modern browsers. |
-b:a 128k
|
Sets the Opus audio bitrate to 128 kilobits per second. For speech-heavy audiobook content, Opus at 128k provides very high quality; you can lower this to 64k or 96k with minimal perceptible loss for spoken word while significantly reducing file size. |
-vn
|
Disables all video stream output, which in the context of M4B conversion strips any embedded cover art (stored as a video stream in the MPEG-4 container) and ensures the output is a clean audio-only WEBA file as required by the WebM audio format. |
output.weba
|
Defines the output filename with the .weba extension. FFmpeg uses this extension to select the WebM muxer in audio-only mode, producing a file that browsers and web audio APIs recognize as a streamable Opus audio source. |
Common Use Cases
- Serving audiobook audio on a custom web player that requires WebM/Opus for cross-browser HTML5 compatibility without relying on MP4/AAC licensing
- Extracting the spoken-word audio from a purchased or self-produced M4B audiobook to use in a browser-based language-learning application
- Converting podcast episodes saved in M4B format into WEBA for streaming through a Progressive Web App that targets Chromium-based browsers
- Preparing audiobook narration tracks for use inside WebGL or web-game engines that natively consume Opus audio via the Web Audio API
- Reducing file size compared to the original AAC-in-M4B when re-encoding at lower Opus bitrates for bandwidth-constrained mobile web delivery
- Archiving the audio content of a chapter-based M4B as a single continuous WEBA file when chapter navigation is handled externally by the application
Frequently Asked Questions
No. The WEBA (audio-only WebM) container does not support chapters or bookmarking, which are core features of the M4B format. During conversion, FFmpeg strips all chapter metadata and produces a single continuous Opus audio stream. If chapter navigation is important, you would need to either split the M4B into separate per-chapter files before converting or handle chapter timing externally in your web application.
Both AAC and Opus are lossy codecs, so transcoding introduces a second generation of lossy compression. At equal bitrates, Opus is generally considered equal to or slightly better than AAC for speech content, which is the dominant content in audiobooks. Converting a 128k AAC source to 128k Opus at the default bitrate should produce perceptibly similar quality for spoken word, but audiophiles may notice subtle artifacts. To minimize generational loss, encode the WEBA at a bitrate equal to or higher than the source M4B's audio bitrate.
Opus (libopus) is the default and recommended audio codec for WebM in modern browsers, offering better compression efficiency and lower latency than Vorbis, particularly at the lower bitrates common for speech audio. For audiobook content, Opus maintains intelligibility and naturalness at bitrates as low as 64k, making it a better match for M4B's spoken-word audio than Vorbis. Vorbis is an older codec that is still supported by WebM but is no longer actively developed.
Replace the value after -b:a in the command. For example, to encode at 64k for smaller file sizes suitable for speech-only content, use: ffmpeg -i input.m4b -c:a libopus -b:a 64k -vn output.weba. For higher fidelity, use 192k or 256k. Opus is highly efficient for speech at 64k–96k, so you can often use a lower bitrate than you would with AAC without a noticeable quality difference.
Yes. In a Unix-based terminal (macOS or Linux), you can use a shell loop: for f in *.m4b; do ffmpeg -i "$f" -c:a libopus -b:a 128k -vn "${f%.m4b}.weba"; done. On Windows Command Prompt, use: for %f in (*.m4b) do ffmpeg -i "%f" -c:a libopus -b:a 128k -vn "%~nf.weba". Note that the browser-based tool processes one file at a time, so the FFmpeg command is particularly useful for bulk conversions.
No. The -vn flag in the FFmpeg command explicitly disables all video streams, and M4B cover art is stored as a video stream within the MPEG-4 container. WebM/WEBA does not have a standardized mechanism for embedded cover art in the same way M4B does, so stripping it is both intentional and necessary for producing a valid WEBA file.
Technical Notes
M4B and WEBA represent two very different philosophies: M4B is a rich audiobook container built on MPEG-4 Part 14 with support for AAC audio, chapters, gapless playback cues, and iTunes-compatible metadata, while WEBA is a minimalist, web-first audio container using WebM with Opus or Vorbis audio and virtually no metadata capabilities beyond basic tags. The transcode path here is AAC → PCM → Opus, meaning the audio is fully decoded before re-encoding, which is computationally heavier than a remux. Opus performs exceptionally well on speech content (the primary use case for M4B) at bitrates of 64k–96k, but the default 128k matches the M4B default and provides comfortable headroom. One important limitation: if your M4B source was encoded at a low bitrate (e.g., 64k, common for older audiobooks), encoding the WEBA output at 128k will not recover lost detail — it will only increase file size without quality benefit, so matching the output bitrate to the source is advisable. ID3 tags such as title and artist may partially transfer depending on FFmpeg's WebM muxer tag mapping, but audiobook-specific fields like chapter titles, narrator, and series metadata will be lost entirely.