Мой yepp-плейер при всем его удобстве (особенно радует его неубиваемость и то, что он работает от батарейки, которую несложно достать в поле) отличается небольшой емкостью - всего 128М. Посему, музыку для него я обычно ужимаю до битрейта в 128 - лучшее качество я все равно не смогу оценить в наушниках, а место можно сэкономить.
Некоторое время я это перекодирование выполнял через пакетную обработку в Audacity, однако перед экзаменом по философии внезапно выяснилось, что Audacity на текущую ось я почему-то не поставил. Зато у меня был lame - который можно использовать для этих целей с соответствующими ключами, например так:
читать дальше в wordpress'e lame -h -b 128 --vbr-new music_old.mp3 music_new.mp3
-b 128 - битрейт 128
-h - использовать более медленный но качественно лучший алгоритм сжатия
--vbr-new - задействовать variable bitrate и еще более новый, быстрый и качественный алгоритм сжатия
Все эти ключи (и все остальное) можно посмотреть либо через man lame, либо запустив в комстроке lame --help.
Теперь нужно было сделать пакетную обработку - чтобы не задавать по одной команде на каждый отдельно взятый файл, а перекодировать все одним пакетом. Я воспользовался своей собственной
старой заметкой про пакетную обработку djvu и на ее базе задал такую вот строку.
for x in *.mp3; do lame -V0 -h -b 128 --vbr-new $x $x.new; done
В запущенной директории она перебирает все файлы с расширением .mp3 и для каждого из них запускает lame, добавляя к окончанию получившегося файла ".new".
Все отлично сработало. Осталось только скопировать все файлы с .new-расширением в другую папку и "откусить" им этот .new-хвост, вернув прежний вид.
Я использовал утилиту rename. Она переименовывает файлы по регулярным выражениям примерно так, как это происходит в vim и sed:
rename 's/старый шаблон/новый шаблон/' *.mp3
Сразу запускать переименование не рекомендую - лучше сначала проверить как оно произойдет. Сделать "тестовый прогон" и убедиться, что не было ошибок. Для чего нужно два ключа:
-v подробно описывать действия
-n ничего не переименовывать - просто показать результат в режиме "пробного просмотра"
Пример:
$ ls *.new
1.mp3.new 2.mp3.new 3.mp3.new
$ rename -v -n 's/mp3.new$/mp3/' *.new
1.mp3.new renamed as 1.mp3
2.mp3.new renamed as 2.mp3
3.mp3.new renamed as 3.mp3
Ну и убедившись, что все сработало как надо - можно запустить rename без ключа -n - и переименовать файлы.
$ rename -v -n 's/mp3.new$/mp3/' *.new
1.mp3.new renamed as 1.mp3
2.mp3.new renamed as 2.mp3
3.mp3.new renamed as 3.mp3
$ rename -v 's/mp3.new$/mp3/' *.new
1.mp3.new renamed as 1.mp3
2.mp3.new renamed as 2.mp3
3.mp3.new renamed as 3.mp3
$ ls *.mp3
1.mp3 2.mp3 3.mp3