tengu_crow: (Default)
[personal profile] tengu_crow
Мой 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
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

June 2025

S M T W T F S
123456 7
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 1st, 2025 09:01 pm
Powered by Dreamwidth Studios