FFmpeg turns a folder of WMA files into MP3s with one command. No graphical tool needed. The workhorse is ffmpeg -i input.wma -c:a libmp3lame -b:a 192k output.mp3. Wrap it in a loop and every .wma in the folder converts. Below are the exact commands for Windows and macOS/Linux, plus how to set VBR quality and keep your metadata intact.
Single File Conversion Command
Test on one track first. Open a terminal, cd into the folder with your WMA files, and run:
ffmpeg -i input.wma -c:a libmp3lame -b:a 192k output.mp3
Swap input.wma and output.mp3 for your real filenames. The -c:a flag picks the LAME encoder. -b:a 192k locks the bitrate at 192 kbps. For variable bitrate, drop -b:a and use -q:a 2 instead. That setting delivers roughly 170-210 kbps, giving you strong fidelity at a smaller file size.
Batch Convert All WMA Files in a Folder
Windows Command Prompt (One-Time Use)
Run this single line in Command Prompt:
for %f in (*.wma) do ffmpeg -i "%f" -c:a libmp3lame -b:a 192k "%~nf.mp3"
%f grabs each filename. %~nf strips the extension, so song.wma lands as song.mp3.
Windows Batch File (For Reuse)
Save the command in a .bat file and double the percent signs:
for %%f in (*.wma) do ffmpeg -i "%%f" -c:a libmp3lame -b:a 192k "%%~nf.mp3"
macOS / Linux Bash Loop
In Terminal, use:
for f in *.wma; do ffmpeg -i "$f" -c:a libmp3lame -b:a 192k "${f%.wma}.mp3"; done
${f%.wma} chops the .wma suffix and tacks on .mp3. Every loop does the same thing: one MP3 per WMA file, sitting right next to the original.
Preserving Metadata During Conversion
FFmpeg drops artist, album, and title tags unless you tell it otherwise. Add -map_metadata 0 to carry global metadata from the source into the new MP3. The command becomes:
ffmpeg -i input.wma -map_metadata 0 -c:a libmp3lame -b:a 192k output.mp3
For broader player compatibility, force ID3v2.3 tags with -id3v2_version 3. The full single-track instruction:
ffmpeg -i input.wma -map_metadata 0 -c:a libmp3lame -b:a 192k -id3v2_version 3 output.mp3
In a batch loop, slot the same flags after -i. The Windows version now reads:
for %f in (*.wma) do ffmpeg -i "%f" -map_metadata 0 -c:a libmp3lame -b:a 192k -id3v2_version 3 "%~nf.mp3"
Choosing Bitrate and Quality
-b:a sets a constant bitrate. Bigger numbers mean larger files and more detail. For variable bitrate, reach for -q:a with a value from 0 (best, largest) to 9 (worst, smallest). Stick with -q:a 2. It averages 170-210 kbps and hits the sweet spot between size and sound.
Leave both -b:a and -q:a off and FFmpeg defaults to VBR quality 4. That lands in a range that balances file size and quality. Convert a handful of tracks at different settings. Pick the one your ears like.
Handling Large Libraries and Progress
Hundreds of files will flood the terminal with per-track progress. Cut the noise by adding -loglevel error before the output filename:
for %f in (*.wma) do ffmpeg -i "%f" -map_metadata 0 -c:a libmp3lame -b:a 192k -id3v2_version 3 -loglevel error "%~nf.mp3"
On macOS or Linux, throw an ampersand after done to push the loop into the background. On Windows, just open a fresh Command Prompt window and let it chew through the list.
Limitations and Notes
- FFmpeg cannot touch DRM-protected WMA files. Strip the protection first, or go back to the original source.
- FFmpeg is free, open-source software. Grab it from the official FFmpeg site.
- No installation? The browser tool at wmatomp3converterfree.net handles batches up to 300 MB. It works locally, processes everything in your browser, and deletes the files when it finishes.
Troubleshooting Common Issues
FFmpeg not recognized: Install FFmpeg and add it to your system PATH. On Windows, restart Command Prompt afterward. On macOS or Linux, use sudo apt install ffmpeg (Debian/Ubuntu) or brew install ffmpeg (Homebrew).
No WMA files found: Check you are in the right folder with cd. List what is there: ls *.wma on macOS/Linux, dir *.wma on Windows.
Metadata not appearing: Confirm you used -map_metadata 0 and -id3v2_version 3. Some players ignore certain tags. Test with an application that displays ID3 fields.