Конвертирование аудио файлов


Конвертируем музыку из аудио CD в .wav:

Нам понадобится cdparanoia. Если не установлена, ставим

sudo apt-get install cdparanoia

cdparanoia -Q

выведет список треков на диске и время звучания.

Скидываем треки на жесткий диск:

cdparanoia -B -S 24 -Z 1-7 /home/virtdiver/cd1/

где:
-B - записываем каждый трек отдельным файлом
-S 24 - указываем скорость считывания
-Z - даем команду не восстанавливать поврежденные треки (царапины на диске и проч.) в целях увеличения скорости
1-7 сохраняем с 1ого по 7ой трек

в простейшем виде команда конвертирования аудио cd в wav выглядит так:

cdparanoia -B

Конвертируем из wav в mp3:

Нам потребуется утилита-кодер lame. ставим:

sudo apt-get install lame

Конвертируем командой:

lame -b 192 track01.cdda.wav 1.mp3

В данном случае мы получили файл 1.mp3 с постоянным битрейтом 192 kbps.
битрейт можно указать любой из данного ряда значений 32 40 48 56 64 80 96 112 128 160 192 224 256 320


Конвертируем из cd-аудио в mp3 без создания промежуточных wav:

cdparanoia -B 1 - | lame -b 192 - 1.mp3

Данная команда снимает с диска трек посредством утилиты cdparanoia и автоматически передает результат ее работы утилите lame. В данной записи мы получим файл 1.mp3 с постоянным битрейтом 192 kbps с трека № 1 CD-диска.
Символы тире перед метасимволом | и после команды lame указывают на то, что вывод работы утилиты cdparanoia должен осуществляться не в файл, как рассматривалось в предыдущих примерах, а в стандартный канал вывода (stdout), а входными данными для утилиты lame должен быть стандартный канал ввода (stdin).

Добавляем цикл и получаем:

for i in `seq 2 10`; do cdparanoia -B $i - | lame -b 192 - $i.mp3; done

этой командой перегоняем в mp3 треки со 2ого по 10ый. Обращаю внимание что seq 2 10 заключен не в обычные кавычке а в те что на клавише с буквой "Ё".


или пример без кавычек:

for i in seq 1 2 3 10; do cdparanoia -B $i - | lame -b 192 - $i.mp3; done

будут сконвертированы 1ый, 2ой, 3ий и 10ый треки.


Конвертирование из wav в mp3 или из mp3 в mp3 с изменением битрейта.

как то возникла задача - перекинуть на мп3плеер тысячу треков разбитых на альбомы (т.е. в разных дирректориях) понизив битрейт, иначе не влезало. запускать конвертирование для каждой папки было очень долго и не удобно, так как папок было много. Придумал такое решение:

find ~/ -iname "*.mp3" -exec lame -b 128 '{}' '{}'. ';' && find ~/ -iname "*.mp3" -exec rm '{}' ';' && find ~/ -iname "*.mp3." -exec mv '{}' '{}'mp3 ';'

Эта команда осуществляет конвертирование в мп3 с битрейтом 128 в текущей дирректории и во всех вложенных в нее.

Рассмотрим подробнее:

1. Ищем утилитой find все файлы с расширением .mp3 и передаем их с помощью ключа -exec кодировщику lame. '{}' в данном случае содержит название файла, найденного командой find. Кодировщик конвертит в файл вида "*.mp3." .


2. Ищем утилитой find все файлы с расширением .mp3 и удаляем их командой rm, так как они нам больше не нужны.

3. Находим наши отконвертированные файлы вида "*.mp3." и переименовываем их в файлы вида "*.mp3.mp3" .

Немножко корявый способ, появляется в названии лишнее "mp3", кто подскажет способ лучше - буду рад.

Для рекурсивного перекодирования из wav в mp3 все проще:

find ~/ -iname "*.wav" -exec lame -b 128 '{}' '{}' ';' && find ~/ -iname "*.wav" -exec rm '{}' ';'

команда конвертирует из wav в mp3, затем удаляет wav.

April 24, 2010