A redução da taxa de bits envolverá recodificação, o que significa que você terá que criar arquivos de saída separados. Você poderia usar avconv
na linha de comando:
avconv -i input.mp3 -c:a libmp3lame -b:a 128k output.mp3
Para fazer um diretório inteiro de .mp3s:
for f in ./*.mp3; do avconv -i "$f" -c:a libmp3lame -b:a 128k "${f%.*}-out.mp3"; done
Isso criará arquivos com -out.mp3
no final de seus nomes. Se você quiser substituir seus originais, você pode usar mv
para sobrescrevê-los (aviso: isso deve ser considerado irreversível):
for f in ./*.mp3; do avconv -i "$f" -c:a libmp3lame -b:a 128k "${f%.*}-out.mp3" && mv "${f%.*}-out.mp3" "$f"; done
Pode ser mais seguro fazer isso em duas etapas:
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
Você pode fazer isso para arquivos recursivamente (todos os arquivos .mp3 no diretório de trabalho e todos os subdiretórios):
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