Convert WEBA to AAC — Free Online Tool

Convert WEBA audio files (WebM audio containers with Opus or Vorbis encoding) to AAC format, producing .aac files encoded with the native FFmpeg AAC codec at 128kbps by default. AAC offers broad compatibility with Apple devices, iTunes, iOS, and streaming platforms that don't support the Opus codec natively.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

WEBA files store audio in a WebM container, almost always encoded with the Opus codec (occasionally Vorbis). AAC uses an entirely different compression algorithm, so this conversion is a full transcode — the Opus audio stream is decoded to raw PCM and then re-encoded from scratch using FFmpeg's built-in AAC encoder. There is no stream-copy shortcut here; both the codec and container change. Because both Opus and AAC are lossy formats, this is a lossy-to-lossy transcode, meaning some additional generation loss is introduced compared to encoding from a lossless source. The output is a raw AAC bitstream file (.aac), not wrapped in an MP4 or M4A container.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program. In this browser-based tool, this runs as FFmpeg.wasm inside WebAssembly entirely within your browser — no server is involved.
-i input.weba Specifies the input file, a WEBA audio container. FFmpeg reads the container header to detect the audio codec (Opus or Vorbis) before beginning the transcode.
-c:a aac Selects FFmpeg's built-in AAC encoder for the audio stream. This replaces the Opus or Vorbis codec from the WEBA source with AAC encoding — a full re-encode rather than a stream copy, since these codecs are not interchangeable.
-b:a 128k Sets the AAC output bitrate to 128 kilobits per second. This is the standard default for AAC and produces good quality for speech and music; you can raise it to 192k or 256k for higher fidelity if the source WEBA was encoded at a higher bitrate.
output.aac Defines the output filename and format. The .aac extension tells FFmpeg to write a raw ADTS AAC bitstream. Change this to output.m4a if you need the AAC audio wrapped in an MP4 container with metadata support for iTunes or Apple devices.

Common Use Cases

  • Making web-captured audio compatible with iTunes or Apple Music, which does not recognize Opus-encoded WEBA files
  • Preparing voice recordings or podcast segments grabbed from a browser-based recorder for upload to platforms like Spotify for Podcasters or Anchor that require AAC or MP3
  • Converting WEBA audio downloaded from a WebRTC or video conferencing session for playback on an iPhone or iPad without needing a third-party app
  • Supplying AAC audio to video editors like Final Cut Pro or older versions of Premiere Pro that lack native Opus/WEBA support
  • Creating AAC-encoded audio assets for use in iOS or macOS app development, where AAC is the platform-native preferred format
  • Stripping a WEBA audio track from a web game or interactive media project and repackaging it as AAC for broader embedded player compatibility

Frequently Asked Questions

Yes, some quality loss is unavoidable. Opus and AAC are both lossy codecs, so converting between them means decoding the Opus audio back to uncompressed PCM and then re-encoding it with the AAC algorithm — a process called generation loss. At 128kbps, both codecs sound quite good, but the double-encoding does introduce subtle artifacts. If you have access to the original lossless source (WAV, FLAC, etc.), it is always preferable to encode AAC from that rather than from a WEBA file.
The FFmpeg command produces a raw AAC bitstream (.aac), which is the codec output without any container wrapper. M4A and MP4 are container formats that wrap AAC inside an MPEG-4 container and add metadata support. The raw .aac format plays fine in most media players but lacks embedded metadata fields. If you need iTunes-style metadata or broader player compatibility, you can change the output filename to output.m4a in the FFmpeg command to wrap the same AAC audio in an M4A container instead.
Replace the value after -b:a with your desired bitrate. For example, use -b:a 192k for higher quality or -b:a 96k for a smaller file. AAC typically sounds transparent to most listeners at 128kbps and above, and 192kbps or 256kbps is a safe choice if the source WEBA file was encoded at a high bitrate. Note that raising the output bitrate beyond the original WEBA source bitrate will not recover lost quality — it only increases file size.
Yes, if your FFmpeg build includes libfdk_aac (it must be compiled with --enable-libfdk-aac due to licensing), you can replace -c:a aac with -c:a libfdk_aac. The Fraunhofer FDK AAC encoder is widely regarded as producing slightly better quality than FFmpeg's native AAC encoder at the same bitrate. However, the browser-based tool here uses FFmpeg.wasm, which ships with the native aac encoder. To use libfdk_aac, you would need to run the command locally with a full FFmpeg build that includes it.
Metadata handling depends on what tags exist in the WEBA file and whether the output container supports them. A raw .aac file has very limited metadata support. FFmpeg will attempt to copy any title, artist, or album tags from the WEBA container, but they may not be readable by all players in a bare .aac file. To reliably preserve metadata, change the output to output.m4a so FFmpeg wraps the AAC in an MP4 container that fully supports ID3-style tagging.
The single-file command shown here must be adapted for batch use. On Linux or macOS, you can run: for f in *.weba; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.weba}.aac"; done. On Windows Command Prompt, use: for %f in (*.weba) do ffmpeg -i "%f" -c:a aac -b:a 128k "%~nf.aac". This processes each WEBA file in the current directory and outputs a matching .aac file. The browser-based tool processes one file at a time.

Technical Notes

The WEBA format is essentially a WebM container restricted to audio-only streams, and in practice nearly all WEBA files use the Opus codec (the WebM default audio codec), though legacy files may use Vorbis. FFmpeg detects the actual codec at runtime, so the command handles both transparently. The output is encoded using FFmpeg's native AAC encoder (aac), which is free of patent licensing complications and produces solid quality. The -vn flag is used on the input side for WEBA to explicitly strip any unexpected video stream, though WEBA is audio-only by definition. One important distinction: the output .aac file is an ADTS-framed raw AAC stream, not an MPEG-4 container. This means it lacks support for cover art, chapter markers, and rich metadata — all of which are container features, not codec features. Switching to an M4A or MP4 output filename resolves this. AAC's maximum standardized bitrate is 320kbps, matching the range available in this tool, and stereo AAC at 128kbps is considered near-transparent by most double-blind listening tests, making the default setting appropriate for most use cases.

Related Tools