WMA to Opus Converter
Drop a WMA file to inspect its metadata, choose a target Opus bitrate, and copy a ready-to-run FFmpeg command — nothing is uploaded.
Inspect WMA Metadata
Drop or select any audio file. It is decoded locally in your browser — no data is uploaded to any server.
| File name | — |
| File type | — |
| File size | — |
| Duration | — |
| Sample rate | — |
FFmpeg Command Generator
ffmpeg -i "input.wma" -c:a libopus -b:a 96k -vbr on -map_metadata 0 "input.opus"
Install FFmpeg free at ffmpeg.org. Run this command in your terminal after replacing the file name.
Batch convert WMA files (Linux / macOS)
for f in *.wma; do ffmpeg -i "$f" -c:a libopus -b:a 96k -vbr on -map_metadata 0 "${f%.wma}.opus"; done
Batch convert WMA files (Windows PowerShell)
Get-ChildItem *.wma | ForEach-Object { ffmpeg -i $_.FullName -c:a libopus -b:a 96k -vbr on -map_metadata 0 ($_.BaseName + ".opus") }
Enter audio duration below, or inspect a file above to auto-fill.
hrs
min
sec
Formula: bitrate (kbps) × duration (s) / 8000
32 kbps
—
64 kbps
—
96 kbps
—
48 kbps
—
128 kbps
—
Duration: 3 min 30 sec (210 s)
Why No In-Browser Conversion?
Browsers expose the Web Audio API for decoding audio, but they do not include an Opus encoder, and WMA decoding is not universally supported. FFmpeg bundles a WMA decoder and libopus and handles the full pipeline:
- 1 FFmpeg opens the WMA container (ASF) and reads the compressed audio stream.
- 2 The WMA decoder decompresses the stream to raw PCM audio in memory.
- 3 libopus re-encodes the PCM data to Opus at the bitrate you specify.
- 4 FFmpeg wraps the Opus stream in an OGG container and writes the .opus file to disk.
Install FFmpeg at ffmpeg.org (free, open-source). On Linux: sudo apt install ffmpeg. On macOS: brew install ffmpeg.
Opus Bitrate Reference
| Bitrate | Quality | Size / min | Best For |
|---|---|---|---|
| 24 kbps | Acceptable | ~0.18 MB | Voice calls, minimal bandwidth |
| 32 kbps | Good | ~0.24 MB | Podcasts, audiobooks, speech |
| 48 kbps | Very Good | ~0.36 MB | Speech, transparent for voice |
| 64 kbps | Excellent | ~0.48 MB | Casual music listening |
| 96 kbps | Near-transparent | ~0.72 MB | General music, headphones |
| 128 kbps | Transparent | ~0.96 MB | Audiophile, archival Opus |
WMA vs. Opus — At a Glance
WMA (Windows Media Audio)
- Default codec for Windows Media Player and older Xbox
- Supported by most Windows software and some car stereos
- Proprietary Microsoft format, not royalty-free
- Lower quality than Opus at equivalent bitrates
- Not natively supported on macOS, iOS, or Linux without extra codecs
Opus (RFC 6716, libopus)
- Outperforms WMA at all common bitrates
- Royalty-free and open-source (Xiph.org / IETF)
- Native support in all major browsers and WebRTC
- Not supported by older car stereos or dedicated audio players
- Apple devices have limited native Opus support outside browsers
Summary
Drop a WMA file to inspect its metadata, choose a target Opus bitrate, and copy a ready-to-run FFmpeg command — nothing is uploaded.
How it works
- Drop a WMA file onto the inspector panel (or click to browse).
- The Web Audio API reads the file sample rate, duration, and channel count locally in your browser.
- Choose a target Opus bitrate in the command generator — 96 kbps is a solid general-purpose choice.
- Optionally enable VBR mode (-vbr on) for better quality at the same average bitrate.
- Copy the generated FFmpeg command and run it in your terminal.
- Verify the output Opus file in a media player before deleting the original WMA.
Use cases
- Convert a legacy WMA music library to Opus for efficient cross-platform storage.
- Reduce podcast or audiobook file sizes significantly with Opus at 32–64 kbps versus WMA at 128 kbps.
- Prepare audio for WebRTC applications or web streaming where Opus is natively supported.
- Replace proprietary WMA files with royalty-free Opus audio for open-content projects.
- Batch-convert an entire WMA folder to Opus using a single shell loop.
- Inspect an unknown WMA file to confirm its duration and sample rate before processing.
- Generate ready-to-paste FFmpeg commands without memorizing Opus encoder flags.
- Estimate output file size at different Opus bitrates before committing to a large batch.