If you install lame and mp3info into your Mint (or Debian) Linux box, the following code will help you downsample your music collection from one directory to another.
#!/bin/bash INPUT_DIR="/data/PhoneMusic1" OUTPUT_DIR="/data/downsampled" ARCHIVE_DIR="/data/OriginalMusicArchive" NEW_BITRATE=128 SAVINGS=0 IFS=$'*' cd ${INPUT_DIR} for ALBUM in * do if [ "${ALBUM}" != "$0" ] then ORIGINAL_SIZE=$(du -sch ${INPUT_DIR}/${ALBUM} | grep total | awk -F'M' '{print $1}') cd "${INPUT_DIR}/${ALBUM}" pwd if ! [ -d "${OUTPUT_DIR}/${ALBUM}" ] then mkdir "${OUTPUT_DIR}/${ALBUM}" fi for TRACK in *.mp3 do if ! [ -f "${OUTPUT_DIR}/${ALBUM}/${TRACK}" ] then OLD_BITRATE=$(mp3info -r a -p "%f %r\n" ${TRACK} | awk '{print $NF}'| awk -F'.' '{print $1}') if [ ${OLD_BITRATE} -gt ${NEW_BITRATE} ] then echo "Downsampling ${OLD_BITRATE}->${NEW_BITRATE}: Track: ${TRACK}" lame --mp3input -b ${NEW_BITRATE} -q0 "${TRACK}" "/tmp/${TRACK}" > /dev/null 2>&1 mv "/tmp/${TRACK}" "${OUTPUT_DIR}/${ALBUM}" else echo "Low Sample Rate: ${OLD_BITRATE}, ${OUTPUT_DIR}/${ALBUM}/${TRACK}" cp "${TRACK}" "${OUTPUT_DIR}/${ALBUM}/${TRACK}" fi else echo "Previously Converted: ${OUTPUT_DIR}/${ALBUM}/${TRACK}" fi done NEW_SIZE=$(du -sch ${OUTPUT_DIR}/${ALBUM} | grep total | awk -F'M' '{print $1}') DELTA=$((${ORIGINAL_SIZE}-${NEW_SIZE})) SAVINGS=$((${SAVINGS}+${DELTA})) echo "Original Size: ${ORIGINAL_SIZE}M, New Size: ${NEW_SIZE}M, Delta: ${DELTA}M & Savings: ${SAVINGS}M" cd "${INPUT_DIR}" mv "${ALBUM}" "${ARCHIVE_DIR}" fi done