Reducing multiple mp3 bitrate

Reducing the bit rate will involve re-encoding, which means that you'll have to create separate output files. You could use avconv from the command-line:

avconv -i input.mp3 -c:a libmp3lame -b:a 128k output.mp3

To do a whole directory of .mp3s:

for f in ./*.mp3; do avconv -i "$f" -c:a libmp3lame -b:a 128k "${f%.*}-out.mp3"; done

This will create files with -out.mp3 at the end of their names. If you want to replace your originals, you can then use mv to overwrite them (warning: this should be considered irreversible):

for f in ./*.mp3; do avconv -i "$f" -c:a libmp3lame -b:a 128k "${f%.*}-out.mp3" && mv "${f%.*}-out.mp3" "$f"; done

It might be safer to do this in two steps:

for f in ./*.mp3; do avconv -i "$f" -c:a libmp3lame -b:a 128k "${f%.*}-out.mp3"; done
for f in ./*-out.mp3; do mv "$f" "${f%-out.mp3}.mp3"; done

You can do this to files recursively (every .mp3 in the working directory and all sub-directories):

shopt -s globstar
for f in ./**/*.mp3; do avconv -i "$f" -c:a libmp3lame -b:a 128k "${f%.*}-out.mp3"; done
for f in ./**/*-out.mp3; do mv "$f" "${f%-out.mp3}.mp3"; done

ffmpeg is the tool I'd use, and I'd combine it with find to find the files I wanted converting.

mkdir converted
find . -iname '*.mp3' -exec ffmpeg -i  "{}" -b 100k "{}" "converted/{}" \;

Try Audacity. Audacity is free, open source software for recording and editing sounds. You can use Audacity to record live audio, convert tapes and records, edit sound files, change the speed or pitch of a recording and much more.

For more info, and to download form Audacity, check out their website

Or to install just click Audacity Install comixcursors-lefthanded

Source:Audacity