Грабим и режем
 
08.07.2003
Петр Семилетов


 
стр. 1
стр. 2 >>

Превратить свою фонотеку, состоящую из компакт-дисков, в коллекцию аудиофайлов — задача вроде бы тривиальная, но и здесь есть множество подводных камней. Поговорим о том, как треки с аудио-CD быстро и оптимально конвертировать в формат сжатого звука и записать на болванку CD-R/RW — причем проделать все это в Linux.

Чем потрошить?

Первый этап — извлечение музыки с носителя. Обычно эта процедура называется «грабить» (от английского глагола to grab — хватать) или «рипать» (to rip — потрошить). Суть «рипания» в том, чтобы преобразовать звуковые дорожки, взятые с аудио-CD, в знакомые каждому wav-файлы аналогичного качества (те же 16 бит, 44,1 кГц). Ими проще оперировать при конвертировании в другой формат или записи на CD.

1В каждый дистрибутив Линукса входят две консольные утилиты, предназначенные для «потрошения» музыкальных CD, — cdda2wav и cdparanoia1. Первая несколько проще, но так как сdparanoia — наследница cdda2wav, основанная на ее же коде, я не вижу причин использовать более старый софт. Поэтому в качестве основного рабочего инструмента выберем именно cdparanoia (рис. 1). Дабы не пересказывать документацию, я покажу способы работы с программой на конкретных примерах2. Чтобы получить базовую информацию о вставленном в устройство /dev/cdrom диске, достаточно выполнить команду
cdparanoia -Q.
После этого на экран будет выведена таблица с описанием содержимого CD — количество треков, длительность каждого из них и т. п. Обратите внимание на регистр параметра Q (именно большая буква).
Предположим, нужно быстро сграбить дорожку номер 2:
cdparanoia -B -S 40 -Z 2.
Параметр B нужен для того, чтобы утилита записывала каждую дорожку в отдельный файл. Параметр S задает скорость чтения (в нашем случае 40х), а Z отключает дополнительные возможности cdparanoia по восстановлению поврежденного аудио (царапины и пр.). Зачем отключает? Для повышения скорости работы. Наконец, последняя опция представляет собой число — это номер дорожки, которую мы хотим сграбить.
Допустим, мы хотим проделать то же с дорожками от 2 до 6 включительно. Тогда команда примет следующий вид:
cdparanoia -B -S 40 -Z 2-6.
А если нужно сграбить диск целиком:
cdparanoia -B.
По умолчанию работают алгоритмы, которые позволяют cdparanoia прочитать музыку с сильно поцарапанных дорожек. Плейер на таких дорожках обычно перескакивает на другой трек (плейеры под Windows вообще могут при этом подвесить систему)
3. А cdparanoia эту дорожку прочтет, только в выходном файле будет слышен щелчок — от которого, впрочем, нетрудно избавиться в мало-мальски развитом волновом редакторе, применив к порченному фрагменту операцию интерполяции4. С незапамятных времен у меня лежал один диск в состоянии настолько жутком, что я опасался крутить его даже на пальце, не то что в дисководе CD-ROM. Так вот, cdparanoia умудрилась вытянуть из него всю музыку! Однако эти алгоритмы ощутимо замедляют процесс. Так, на граббинг дорожки длительностью 2:44 с помощью команды cdparanoia -B -S 40 2 (то есть с детекцией царапин) я потратил две минуты, а используя команду cdparanoia -B -Z -S 40 2 — всего 34 секунды. Разница существенная. Поэтому если вы «потрошите» нормальный диск, качеству которого целиком доверяете, то отключайте функции по борьбе с царапинами.
С этапом потрошительства/грабительства мы разобрались. Следующий!

Во что кодировать?

Грамотно сжатые в MP3 или OggVorbis звуковые дорожки на слух ничем не отличаются от оригиналов, но занимают во много раз меньше места. Формат MP3, или, выражаясь более научно, MPEG 1 Layer III, — давно и заслуженно пользуется всенародной любовью и признанием. О нем уже столько написано, что я ограничусь лишь вопросом о конвертации звука в этот формат под Линуксом.

Разумеется, нам нужен кодер — программа, которая умеет конвертировать wav-файлы в MP3. Я перепробовал много различных кодеров под Windows и Linux. К моему удивлению, классический кодек от Fraunhofer IIS (разработчик MP3 и один из владельцев патента на этот алгоритм) в итоге производил звук с большими искажениями, нежели другие кодеры. Кстати, внимательный читатель наверняка спросит: почему я использую термины «кодер» и «кодек», разве это не одно и то же? Нет. Кодек — это кодер/декодер, то есть он работает в обоих направлениях, а кодер — только в одном, на сжатие информации. Некоторые утилиты могут быть только кодерами, иные же — кодеки. Поэтому когда я говорю «кодер», это означает, что я рассматриваю некий продукт именно как программу для сжатия звука, оставляя ее декодирующие способности (если они есть) в стороне.

Есть еще один популярный кодек — Xing, но когда я опробовал его, то картина получилась довольно противоречивая: на воспроизведение Xing работал отлично, но обратный процесс, кодирование, мне не понравился — звук искажался даже больше, чем в «Фраунхофере». Искажения звука обычно называются артефактами. Это, например, знакомое всем «хлюпанье» при низких битрейтах сжатия (особенно заметно, когда в музыке много перкуссионных инструментов). В альтернативных кодерах таких артефактов, как правило, меньше, поэтому MP3 получаются с более чистым на слух звуком, с более широким диапазоном частот (известно, что иногда частоты попросту «рубятся» кодером на определенном пороге) и т. д.

Под Windows я использовал (пока не перешел на OggVorbis) BladeEnc (bladeenc.mp3.no), в Linux же рекомендую LAME. Эта рекомендация основана не только на субъективной оценке качества звучания, но и на анализе спектра звука, получаемого в результате работы программ, которые я тестировал.


1 (назад)Кстати, последняя входит в состав фриварного граббера для Windows — CDEx (cdexos.sourceforge.net).
2 (назад) Подробную информацию по cdparanoia можно получить, задав в консоли команду man cdparanoia.
3 (назад) Чаще в этом виноват привод CD-ROM и его драйвер, нежели плейер. — С. Л.
4 (назад) Есть и специальный софт для удаления в звуковом материале помех, вызванных царапинами, — например, DART Pro.


 
стр. 1
стр. 2 >>

<<Реабилитанс
Все материалы номера
Система конкурирующих версий >>