Мой yepp-плейер при всем его удобстве (особенно радует его неубиваемость и то, что он работает от батарейки, которую несложно достать в поле) отличается небольшой емкостью - всего 128М. Посему, музыку для него я обычно ужимаю до битрейта в 128 - лучшее качество я все равно не смогу оценить в наушниках, а место можно сэкономить.
Некоторое время я это перекодирование выполнял через пакетную обработку в
читать дальше в wordpress'e
Все эти ключи (и все остальное) можно посмотреть либо через
Теперь нужно было сделать пакетную обработку - чтобы не задавать по одной команде на каждый отдельно взятый файл, а перекодировать все одним пакетом. Я воспользовался своей собственной старой заметкой про пакетную обработку djvu и на ее базе задал такую вот строку.
В запущенной директории она перебирает все файлы с расширением .mp3 и для каждого из них запускает
Все отлично сработало. Осталось только скопировать все файлы с .new-расширением в другую папку и "откусить" им этот .new-хвост, вернув прежний вид.
Я использовал утилиту
Сразу запускать переименование не рекомендую - лучше сначала проверить как оно произойдет. Сделать "тестовый прогон" и убедиться, что не было ошибок. Для чего нужно два ключа:
Пример:
Ну и убедившись, что все сработало как надо - можно запустить
Некоторое время я это перекодирование выполнял через пакетную обработку в
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