Конвертация музыки в формате wav в mp3 в нашей музыкальной коллекции.

У меня нет уверенности в том, что у меня в музыкальной коллекции реальные файлы типа WAV, потому что практика показывает, что они при этой конвертации не сжимаются. Но не суть важно. Важно то, что я решил их привести в однообразный с остальной коллекцией вид. Хотя бы для того, что бы громкость всем поставить одинаковую.
Решение о том как конвертировать wav в mp3 нашлось достаточно быстро.
Единственное, что меня смущало — оно не заработало 🙂 Начала выдавать ошибку относительно формата, но меня этим не проведёшь. Интернет тут же подсказал. Всё-таки никакие это были не wav, а совсем даже mp3.
Далее вопрос возник относительно того, как пройтись по всей аудиоколлекции и всё конвертировать. И ещё и удалить исходники, если конвертировать получилось. В результате код получился такой (запускается в корне аудиоколлекции или заменить точку после find на путь):

find . -iname \*.wav | while read F;do echo lame —mp3input -h -b 192 \»$F\» \»${F%.???}.mp3\»\; if [[ -e \»$F\» ]]\; then rm \»$F\»\; fi; done | bash

Вот на этом коде я хотел бы остановиться подробнее, потому что для меня это в новинку. Но в данном случае я сам разобрался и понял что там написано. Хотя и вопросы остались. Итак:
1) find . -iname \*.wav даёт список нужных мне файлов. Причём, в обоих регистрах. То, что можно искать оба регистра сразу без извращений мне подсказали тут.
2) запуск lame без параметра —mp3input не работал, а с этим параметром заработал нормально. Хотя у меня закрадывается мысль о том, что может быть эти файлы вообще переименовать можно было, да не суть важно. Скрипт работает и есть не просит. 🙂
3) Вот тут как раз и начинается кино. В том скрипте, который был прообразом моего творения была только конвертация, а удаления не было. Я достаточно быстро придумал написать rm «$F», но как-то стрёмно, с учётом того, что у меня уже была ситуация когда lame не отработал, а при таком раскладе можно моментально потерять все wav файлы из коллекции 🙂 Описание циклов, проверок файлов и всё такое я нашел тут. У нас в руках безумные возможности. Надо их изучать и пользоваться.
4) Особенно меня порадовало как написано переименование файла. Так как мне надо было придумать как написать этот фрагмент в для обоих регистров (а ещё лучше для регистронезависимого сравнения, что бы Wav тоже отработал), то я пошел и нашел учебник. Там я вообще обрадовался. Давно пора забивать на этот гуй и работать с командной строкой. Настолько безумное море возможностей я ещё не видел. Вот. Короче, я не смог придумать как отрезать именно .WAV и .wav. Не нашел как регулировать что бы сравнение было регистронезависимым, поэтому пошел по пути наименьшего сопротивления и начал просто отрезать трёхбуевенное расширение. Если кто-то знает как это сделать — милости прошу поделиться мыслями.
5) Ну и последнее — у меня не заработал этот скрипт, если в качестве процессора указать | sh. То есть оно не стало удалять файлы. Я проверил сгенерированную строку напрямую — работает. Тогда я поменял на | bash и всё стало замечательно. Почему?

Как-то вот так. Сейчас скрипт доотработает — запущу снова выравнивание громкости. И будем дальше бодаться с rhythmbox 🙂

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.