9

I have thousands of music tracks in WMA format from when I used to use Windows Media Player to rip CDs. Now I'm having problems playing them on my Linux desktop at work.

Is there a good solution (for Windows or Linux) for converting all the WMAs to MP3s while leaving them in the same directories as before? I tried using iTunes to do it, but it started creating new directories to store all the converted tracks, which I don't want.

Gareth
  • 19,080
Eddy
  • 3,427

6 Answers6

8

If you have thousands of files, then this will take forever.

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;

(Older versions of ffmpeg may need -map_meta_data instead of -map_metadata, 0:0 instead of 0:s:0.)

(Newer versions of ffmpeg can use -map_metadata 0 -movflags use_metadata_tags instead of -map_metadata 0:s:0)

I tested this on Ubuntu 16.04. If you haven't already, you need to install the packages ffmpeg and libavcodec-extra-52.

Start this command from the parent directory that contains all your WMA files. It will search through all subdirectories for any file with a .wma extension and attempt to convert it to MP3. If the source file is named Awesome Song.wma, the new file will be Awesome Song.wma.mp3 and will be in the same directory as the source file.

If you normally user a bitrate higher or lower than 192k, change the -ab 192k flag to whatever you want.

Leahkim
  • 363
1

This added flag will tell ffmpeg to try and preserve the ID3 tags:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;
Gareth
  • 19,080
normod
  • 11
1

This one finds the WMA files, converts them to MP3 with a clean extension name of .mp3 instead of .wma.mp3 and deletes the old file. This has been tested to work on Fedora 19 while searching WMA files through 150 GB worth of files that are arranged by artist/album/<disk number>/file.

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;
Randell
  • 1,213
0

Here's the script example for a QNAP NAS that converts all of them:

find . -iname "*.wma" -exec bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;

All tags, including the embedded png cover art, are preserved.

Worthwelle
  • 4,816
larry
  • 1
0

I've never tried this software but it looks promising and it's free.

http://www.freemp3wmaconverter.com/

WMA to MP3 tutorial.

bzsparks
  • 184
  • 3
0

Free Mp3 Wma Converter 1.95 will definitely get your job done.

evan.bovie
  • 3,342