CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Пернатые грабители

Сергей А.ЯРЕМЧУК grinder@ua.fm

Я заядлый меломан. Сколько себя помню, у меня всегда была большая коллекция записей. Поначалу это была куча бобин к катушечному магнитофону, затем, когда качество аудиокассет достигло приемлемого уровня, большая часть коллекции перекочевала на них. И конечно же, когда появился компьютер, эстафета его не миновала. Грабил диски я под Windows, пока не сошелся с пингвинами. Теперь мне в этом помогают эти добросовестные пташки.

В Linux, как принято в большинстве приложений, используемых на данной платформе, процесс кодирования аудио разбит на два этапа: собственно ограбление audio-CD т.е. снятие с него треков и сохранение их на диске в формате .wav с последующим конвертированием в любой из имеющихся форматов. Начнем, как водится, с начала. Можно для этой цели воспользоваться давно не обновляемой CDDA2WAV (ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha), которая наверняка есть в большинстве дистрибутивов. Чтобы содрать первый трек, достаточно ввести команду без параметров, но если в компьютере установлен CD-RW, то так как для его работы используется эмуляция SCSI, дополнительно потребуется указать устройство, с которого будет происходить считывание. А для указания всего диска в целом добавляется опция -В (--bulk). Вот так:

На выходе получим набор файлов —audio_01.wav, audio_02.wav и т.д. Но дополнительно утилита создает также файлы, содержащие информацию о созданных вавниках (audio_1.inf), что позволяет передать информацию программе cdrecord.

Но наиболее популярной программой для снятия треков с аудиодиска является консольная утилита с довольно смешным названием cdparanoia (http://www.xiph.org/paranoia/), которая поначалу представляла собой набор патчей к CDDA2WAV и только с 1998 года начала самостоятельную жизнь; с тех пор эти программы практически ничего не связывает. В самом простом случае команде необходим всего один аргумент — номер трека, в результате получим в текущем каталоге файл cdda.wav:

Причем, чувства юмора у разработчиков хватило не только на название — обо всем происходящем при перегонке диска можно судить по OUTPUT SMILIES. Так вот такая рожица —:-) — означает нормальный ход процесса; :^D — его окончание, значения остальных ищите, как всегда, в man :-(. При необходимости можно в последней позиции указать название выходного файла. Понятно, что в большинстве случаев грабят сразу весь диск. Для этого используем все ту же опцию -В (--batch). После чего при необходимости можно указать ряд дополнительных, не забыв поставить два тире, что значит «весь диск». Так, например, можно сграбить мелодии начиная с двадцатой секунды первого трека и до тридцатой секунды четвертого.

Получившиеся в результате файлы будут иметь названия track01.cdda.wav, track02.cdda.wav и т.д.

Какую программу использовать — дело ваше, но замечу, что cdparanoia автоматически определяет устройства, в том числе и SCSI, с которыми cdda2wav иногда работать категорически отказывается, вдобавок, не пасует перед низкокачественными дисками, исправляет ошибки и вообще проще в использовании. К тому же вот-вот должно появиться следующее, IV поколение программы, или версия 10.

Итак, файлы у нас в руках — чтобы они не занимали много места, требуется их закодировать в какой-то подходящий формат. Если раньше пользователю и выбирать-то, собственно, не из чего было, единолично правил бал .mp3, то с появлением его открытого конкурента Ogg Vorbis (OggVorbis is free!) ему пришлось потесниться. Интересно было наблюдать на западных форумах, как росло число сторонников Ogg Vorbis по мере приближения к окончательному релизу. Для себя я однозначно свой выбор остановил на Ogg, а для дисков, которые попадают ко мне на время, чтобы сохранить оригинальное звучание, выбрал один из lossless-форматов FLAC (http://flac.sourceforge.net), выдающий на выходе наименьший по размеру файл относительно .wav. Впрочем, различных lossless-форматов существует около десятка, и выбирать есть из чего. Сегодня же поговорим о старичке MP3, которого не так легко сбросить с вершины. Ситуация интересна тем, что этот стандарт не определяет никакого точного стандартного математического алгоритма кодирования, его разработка целиком и полностью остается на совести разработчиков-кодеров, поэтому существует несколько кодеков, с помощью которых можно перекодировать файл. Все они отличаются условиями лицензирования, психоакустической моделью (что в свою очередь влияет на качество звучания полученного выходного .mp3-файла на различных битрейтах), а также дополнительными возможностями вроде поддержки кодирования с переменным битрейтом. В Linux наиболее популярны кодеки Lame (http://www.mp3dev.org/mp3/), bladeenc (http://bladeenc.mp3.no), gogo (http://homepage1.nifty.com/herumi/gogo_e.html) и mp3enc (http://www.iis.fhg.de/amm/download). Хотя есть, конечно же, и другие, вроде xingmp3enc или l3enc, но я думаю, и того, что есть, вполне достаточно. Из перечисленных gogo, происходящий, кстати, от Lame, — наверное, самый быстрый; mp3enc отлично показывает себя на высоких битрейтах, но в работе самый медленный; bladeenc на высоких битрейтах также работает отлично, на низких слушать невозможно; наконец, Lame (Lame Ain't an MP3 Encoder), мой любимец, — пожалуй, самый популярный, вдобавок свободный и активно развивающийся, со своей собственной психоакустической моделью GPSYCHO, имеет версии для различных платформ; многие фирмы используют исходные коды LAME для включения поддержки МР3 в свои продукты, а библиотеки на его основе можно встретить в таких популярных программах под Windows как Audiograbber, EAC, Cdex и многих других. На нем я и остановил свой выбор. Доступных параметров кодирования в программе немеряно, все они описаны в соответствующем man’е; также можно ознакомиться с ними, набрав lame -? (--help — для короткого варианта). Остановлюсь на наиболее интересных. Самый простой вариант — просто набрать в командной строке lame audio.wav, и в результате на выходе получим файл audio.wav.mp3 c постоянным битрейтом 128 Кбит/с. Но по моему мнению, слушать музыку с таким качеством можно лишь на колонках за 10 евро десяток, поэтому указываем битрейт с помощью опции -b, а чтобы затем не переименовывать кучу файлов, можно вторым аргументом указать имя выходного файла.

Кодирование с постоянным битрейтом, впрочем, приводит к нерациональному использованию дискового пространства и потере качества в особенно насыщенных музыкальных эпизодах, поэтому в последнее время продвинутые кодеки позволяют кодировать с переменным битрейтом (variable bitrate, VBR), впервые появившимся приблизительно в 1998 году и использованным фирмой XingTech в своем кодеке (к слову сказать, качество последнего так и не поднялось на уровень Fraunhofer IIS ISO-based кодеров (Internation Standards Organization)). Для этого используем параметр -v, а с помощью -V # можно дополнительно указать качество такого кодирования. По умолчанию используется 4, 0 — высшее качество (получившийся файл будет больше), 9 — низшее (файл меньше), или с помощью -b и -B указываем минимальный/максимальный битрейт соответственно.

Засада в том, что ни один из известных мне проигрывателей пока не поддерживает данного расширения, хотя XMMS вроде как должен бы. Но зато отлично работает другой режим —average bitrate (ABR), это что-то среднее между constant bitrate CBR и VBR, при этом указывается среднее значение, и при необходимости программа сама увеличивает или уменьшает его; о характере кодирования в таком режиме можно судить по Рис. 1. Закодировать файл таким образом можно с помощью опции --abr <bitrate>:

Кстати, файл, закодированный такой строкой, получается на 10% меньше, чем кодированный с постоянным битрейтом 256, а качество не отличить. По умолчанию Lame на нижних битрейтах (до 160 Кбит/c) использует режим Joint stereo для кодирования стереосигналов, при этом левый и правый каналы кодируются вместе, но один канал кодируется полностью, а во второй прописывается разностная информация т.е. отличие первого от второго. Есть несколько стандартов представления информации joint stereo, но всех их объединяет существенный недостаток: плохая передача стереоэффектов, в частности, портится фазовая информация. Качество можно изменить, задав режим с помощью опции -m, при этом возможны варианты: (m)ono, (s)tereo (кодируется два канала, но кодер может выделить при необходимости больше места одному из них — оптимальный вариант, используется по умолчанию на высоких битрейтах), (f)orce (подобен предыдущему, только Рис. 1.под оба канала выделяется одинаковое количество места).

Обратите внимание на строку Using polyphase lowpass filter, transition band: 19383 Hz — 19916 Hz (Рис. 1) — для каждого битрейта используется свой фильтр, но его можно изменить вручную с помощью -q <arg>, где <arg> = 0...9 (по умолчанию используется 5), или с помощью -h (рекомендуемый эквивалентен -q 2, в man’е написано «maybe hight quality»), или же -f (быстрый, -q 7). Режим -f отключает психоаккустические фильтры, что делает звук чище на высоких битрейтах, но существенно ухудшает на низких — наверное, самый спорный режим работы. Кстати, при компиляции Lame с поддержкой Ogg Vorbis возможно кодирование и в этот формат, с помощью опции –ogg.

Я могу на эту тему рассказывать долго и нудно, но незачем, поэтому поехали дальше. Естественно, можно объединять эти две программы, выполняя последовательно:

Или используя каналы (черточка означает stdin — стандартный ввод команды).

Немного поэкспериментировав и один раз подобрав приемлемые параметры, я счел наиболее удобным вариантом создание различных быстро запоминающихся алиасов или скриптов (подробности — в статье о bash). В последнем случае, поместив все команды в файл и сделав его исполняемым, можно просто создать ярлык на рабочем столе и перегонять диски нажатием одной единственной кнопки. Круто.

И конечно же, не обошлось без фронт-эндов. Хотя, честно говоря, ни один не запал мне в душу. Тем, у кого есть CD-RW, чтобы не захламлять кучей дублирующих программ систему, достаточно будет подобрать себе соответствующую программу для записи — они в большинстве своем оснащены всем необходимым. Для тех, кто может себе позволить установить KDE или хотя бы библиотеки, наилучшими программами будут Arson (Рис. 2. Mp3chttp://arson.sourceforge.net) или CD Bake Oven (http://cdbakeoven.sourceforge.net).

Из консольных утилит я бы в первую очередь выделил mp3c (Рис. 2), которую можно найти на http://www.wspse.de. Причем советую скачать вариант помеченный как all, размером он на 150 Кб больше — в этом архиве содержится все необходимое для дальнейшей работы программы. По умoлчанию программа использует кодек mp3enc, который входит в комплект all. Но лично я опять же рекомендую Lame, поэтому в ответ на приглашение нажимаем F2 и заходим в меню конфигурации. Здесь в полях (вход через Enter) убираем все упоминания о серверах CDDB — вряд ли вам захочется, чтобы программа лезла всякий раз в Интернет, чтобы заполнить поля ID3-тэга. Затем указываем каталог, в который будут помещаться готовые файлы, и образец для образования имени файлов и плей-листа, который программа создает автоматически. Советую также включить режим encode on-fly as default, иначе каждый полученный вавчик придется кодировать отдельно. Здесь же можно подкорректировать параметры для cdparanoia

Вместо mp3enc я прописал lame с соответствующими параметрами, хотя никто не возбраняет использовать oggenc, чтобы кодировать в Ogg Vorbis. Есть также поля, позволяющие заполнить информацию об артисте, жанре, альбоме и т.д. После всего этого записываем конфигурацию и выходим. Теперь обновляем информацию о вставленном диске V и нажимаем F3, чтобы перегнать весь диск.

Чтобы запускать данную программу с помощью меню в файл ~/.icewm/menu, я вставил такую строку:

Следующая программа —dekagen (Рис. 3) (http://userpage.fu-berlin.de/~mbayer/tools), размером 23 Кб; обладает подобной функциональностью, позволяет использовать в качестве кодека практически любой из известных (при условии, что он установлен в системе), но обладает единственным недостатком — кодеку можно передать только битрейт, об остальных возможностях придется забыть. Можно, конечно смухлевать, добавив к переменной ENCODER в файле ~/.dekagen/dekagenrc дополнительные параметры, но они будут каждый раз обнуляться при обращении к пункту меню настроек. Впрочем, как кому нравится.

Еще стоят упоминания утилиты jack (http://www.home.unix-ag.org/arne/jack), написанная, кстати, на Питоне (Рис. 4), DAGRAB (http://web.tiscalinet.it/marcellou/dagrab.html) и abcde (http://lly.org/~rcw/abcde), позволяющие производить процесс перегонки аудиодиска с командной строки и, естественно, обладающие возможностью передачи большего количества параметров, чем всевозможные фронт-энды.

Рис. 3. Dekagen   Рис. 4. DAGRAB

Теперь об утилитах, работающих под X-Window.

Если нужно просто получить на выходе вавчики, то вполне подойдет Xcdda2wav (Рис. 5), давно не обновлявшаяся (в этом, в общем-то, нет острой необходимости), лежащая на любом сайте с софтом для Linux. С ее помощью можно получить более наглядный доступ через меню к функциям, которые имеются в распоряжении консольных утилит.

Следующий экспонат —XMultiGrab, Рис. 6 (http://xmultigrab.rvb-web.de), позволяет дополнительно получить кодированный файл. Интерфейс разделен на несколько вложенных меню, в каждом из которых устанавливается по одному параметру, что позволяет новичку сходу освоить программу. В качестве кодека предлагается lame (с режимами VBR и оgg), gogo и BladeEnc. Из параметров можно выставить разве что битрейт, качество, разряд. Скудновато, по сравнению с командной строкой. Но вот чего нельзя отнять — все-таки намного удобнее заносить информацию в ID3-тэги.

Рис. 5. Xcdda2wav   Рис. 6. XMultiGrab

RipperX (http://adam.kaist.ac.kr/~wineking/ripperX) — довольно симпатичная на вид и в использовании удобная программа (Рис. 7). Главное, что она не только позволяет задавать битрейт, что само собой разумеется в таких программах, но и знает о таких режимах как VBR, и если нет возможности настроить себе параметры по душе в поле Extra Options, всегда можно их передать программе. И еще одна удобная штука — для каждого CD можно с помощью соответствующей опции автоматически создавать свой каталог, что при массовой перегонке только ускоряет процесс и снимает риск затереть другие файлы. Дополнительно с помощью внешних программ можно прослушать как Audio CD, так и получившиеся файлы.

И конечно же, программа, которую можно встретить в каждом дистрибутиве —Grip (Рис. 8). С помощью ее можно реализовать все возможности, которые доступны в командной строке. Понимает все кодеки, в том числе знает и о flac, дополнительно можно задать свою собственную программу с помощью пункта other. Все основные опции, которые можно задать в командной строке, доступны в виде включателей (в том числе и такие как Содрать часть трека :-)), остальные можно здесь же отредактировать через командную строку. Я бы сказал, что эта программа как раз для тех, кто хочет полностью контролировать процесс и не боится поближе познакомится с первоосновами, то бишь с консольными утилитами.

Рис. 7. RipperX   Рис. 8. Grip

Для поклонников оконного менеджера WindowMaker в самый раз будет апплет Mp3Maker (http://www.users.comcity.de/~schueler), предназначенный как раз для этих целей, — и красиво, и всегда под рукой, при этом позволяет контролировать все необходимые опции.

С помощью плагинов oggre и out_lame (Рис. 9, ) к проигрывателю XMMS, можно конвертировать файлы в Ogg Vorbis или MP3 соответственно. Для этого после установки необходимо в меню Свойства выбрать в качестве выходного устройства нужный плагин, и тогда вместо проигрывания файлы будут кодироваться в соответствующий формат. При этом в свойствах каждого можно установить необходимые параметры.

Рис. 9. Oggre   Рис. 9а. Оut_lame

Как видите, выбирать есть из чего. Могу добавить, что кодирование с моим слабеньким процессором занимает кучу времени, как астрономического, так и процессорного. В Windows мне было проще перегнать диск на компьютере у товарищей с более мощной конфигурацией, чем мучить свой, ведь пока идет процесс, заниматься чем-либо еще противопоказано, приходится ждать окончания. В Linux ситуация иная. Ограбление диска нисколько не мешает заниматься мне остальными делами, разве что фильмы нельзя смотреть. Вот так.

Linux forever.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov