Converting wma to mp3 in bulk without changing directory
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.
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 \;
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"' \;