Сергей Яремчук - 200 лучших программ для Linux
Рис. 3.39. Снятие дорожки с Audio CD
В результате через некоторое время в текущем каталоге появится файл cdda.wav, который будет содержать нужную мелодию.
Чувства юмора у разработчиков хватило не только на название, обо всем происходящим при перегоне диска можно судить по так называемым OUTPUT SMILIES. Так, рожица :-) означает нормальный ход процесса, :^D – его окончание, а описание остальных смотрите в документации man cdparanoia. При необходимости в последней позиции можно указать название выходного файла, чтобы результат был понятней. В большинстве случаев «грабят» весь диск, для чего используется параметр -В (–batch). После этого при необходимости можно указать ряд дополнительных параметров, не забыв поставить два тире, означающих весь диск. Так, например, можно захватить мелодии, начиная с 20-й секунды первой дорожки до 30-й секунды четвертой.
$ cdparanoia -B – 1:[20.35]-4:[30.35]
Получившиеся файлы будут иметь следующие названия: track01.cdda.wav, track02.cdda.wav и так далее.
Кодирование звуковых файлов
У вас есть файлы в формате WAV; чтобы они не занимали много места, их необходимо перекодировать в подходящий формат. Раньше выбор у пользователя был невелик – бал правил MP3, однако с появлением его открытого конкурента Ogg Vorbis появилась альтернатива. Кроме того, имеется ряд кодеков, позволяющих сохранить максимальное качество при меньших, чем WAV, размерах, например FLAC (http://flac.sourceforge.net/).
Кодирование в MP3С MP3 ситуация интересна тем, что стандарт не определяет точного принятого математического алгоритма кодирования, его разработка целиком и полностью остается на совести создателей кодеров, поэтому существует несколько кодеков, с помощью которых можно перекодировать файл. Все они отличаются условиями лицензирования, психоакустической моделью (что, в свою очередь, влияет на качество звучания полученного выходного MP3-файла на различных битрейтах), дополнительными возможностями вроде поддержки кодирования с переменным битрейтом. На первых порах для Linux (и также других систем) предлагалось несколько кодеков, позволяющих кодировать в MP3: lame (Lame Ain't an MP3 Encoder – Lame – не кодировщик MP3) (http://lame.sourceforge.net/), gogo (http://www.marinecat.net/free/windows/mct_free.htm), bladeenc, mp3enc, xingmp3enc, l3enc и другие. В Интернете можно найти статьи, в которых сравниваются результаты, полученные при помощи этих кодеков. Со временем большинство проектов прекратило развитие, и сейчас в репозитарии Ubuntu из всего разнообразия предлагаются только lame и gogo. Кстати, последний берет свое начало от lame, но написан на языке assembler и по скорости кодирования немного обходит lame.
Остановим выбор на lame. Для его установки в Ubuntu достаточно ввести sudo apt-get install lame. Параметров, которые можно установить при кодировании, эта утилита имеет множество, все они описаны в документации, узнать о них также можно, набрав lame -? (–help – для короткого варианта). Остановимся на наиболее интересных. Поддерживается кодирование с постоянным и переменным битрейтом от 32 до 320 Кбит/сек. Самым простым вариантом использования будет набрать в командной строке lame audio.wav. В результате на выходе получится файл audio.wav.mp3, закодированный c постоянным битрейтом 128 Кбит/сек. Музыку, записанную с таким качеством, можно слушать только на компактных проигрывателях, в любом другом случае лучше указать больший битрейт, воспользовавшись параметром -b; заодно вторым параметром лучше указывать и имя выходного файла:
$ lame -b 256 audio.wav audio.mp3
Кодирование с постоянным битрейтом приводит к нерациональному использованию дискового пространства и потере качества в местах особенно насыщенной части мелодии, поэтому в последнее время практически все кодеки позволяют кодировать с переменным битрейтом (англ. variable bitrate – VBR), а проигрыватели, в том числе и аппаратные, уже различают такие файлы.
Примечание
Технология VBR впервые появилась приблизительно в 1998 году и была использована фирмой XingTech в кодеке собственной разработки, но качество этого кодека так и не достигло приемлемого уровня.
Для кодирования с использованием VBR используется параметр –v, и в параметре -V цифра дополнительно указывается качество кодирования. По умолчанию качество установлено в 4. Высшему качеству соответствует 0 (результирующий файл больше), а 9 соответствует низшему качеству (файл меньше). Альтернативно при помощи -b и -B указывается минимальный и максимальный битрейт соответственно.
$ lame -v -V 0 audio.wav audio.mp3
Кодек lame поддерживает еще один режим – average bitrate (ABR), это что-то среднее между constant bitrate (CBR) и VBR. При кодировании указывается среднее значение, и при необходимости программа сама увеличивает или уменьшает его. Для кодирования с использованием ABR используется параметр –abr битрейт (рис. 3.40).
$ lame –abr 224 -b 64 audio.wav audio.mp3
Рис. 3.40. Кодирование с ABR-битрейтом
Файл, закодированный такой строкой, получается на 10 % меньше, чем кодированный с постоянным битрейтом 256, а качество отличить трудно. По умолчанию на нижних битрейтах (до 160 Кбит/с) для кодирования стереосигналов lame использует режим Joint stereo, при этом левый и правый каналы кодируются вместе, но один канал кодируется полностью, а второй – как разностная информация, то есть как отличие первого от второго. Есть несколько стандартов представления информации Joint stereo, но всех их объединяет существенный недостаток – плохая передача стереоэффектов. Качество можно изменить, задав режим при помощи ключа -m, при этом возможны варианты: (m)ono, (s)tereo (кодируется два канала, но кодер может при необходимости выделить больше места одному из них; это оптимальный вариант) и (j)oin. На высоких битрейтах по умолчанию используется режим Stereo.
Для каждого битрейта применяется свой фильтр, но его можно изменить вручную с помощью -q <arg>, где <arg> – число от 0 до 9. По умолчанию используется 5, рекомендуется –q 2 (эквивалент –h). Режим -f (-q 7) отключает психоакустические фильтры, что делает звук чище на высоких битрейтах, но существенно ухудшает на низких. Кстати, возможна компиляция lame с поддержкой Ogg Vorbis, для кодирования в этот формат следует использовать параметр –ogg.
В Linux можно объединять команды копирования и кодирования файла, выполняя их последовательно:
$ cdparanoia 1; lame cdda.wav file_name.mp3
или используя каналы (черта означает stdin – стандартный ввод команды).
$ cdparanoia 2 | lame – file_name.mp3
Кодирование в Ogg VorbisСразу после появления формат MP3 стал объектом споров. Все началось с того, что компании Fraunhofer Institute и Thomson Multimedia, имеющие патент на данный формат, объявили, что он небесплатный, и потребовали отчислений за каждый кодек. В результате они остановились на отчислениях только с коммерческих программ и бытовых устройств. В странах, особенно тщательно следящих за соблюдением патентов, могут возникнуть проблемы при использовании MP3, именно поэтому в Ubuntu, Fedora и некоторых других дистрибутивах изначально нет поддержки этого формата.
В качестве ответа обществом OpenSource в июле 2002 года миру был официально представлен свой формат сжатия звука, именуемый Ogg Vorbis. Спонсором проекта на первом этапе была компания iCast, транслировавшая и распространявшая музыку через Интернет. В случае успеха и перехода на новый формат она могла сэкономить на отчислениях, но до выхода своего детища компания разорилась. Ogg Vorbis – это свободный в распространении формат. Все исходные коды полностью доступны. При сжатии звука кодек Ogg Vorbis использует свои психоакустичесие модели, причем более совершенные, чем в MP3, поэтому при одинаковом размере файлов музыка Ogg Vorbis звучит лучше. В Ogg Vorbis кодек изначально работает с переменным битрейтом, поэтому получившиеся файлы меньшего размера и качественнее сохраняют информацию. Здесь принята шкала качества в диапазоне от 0 до 10 с шагом хоть 0,01. Качеству 3 соответствует стандартное звучание для MP3 128 Кбит/с, битрейт же файла Ogg Vorbis составляет 112 Кбит/с, и получившийся файл на 20 % меньше. Качеству FM-радио соответствует 0, качество 10 приблизительно соответствует битрейту 400 Кбит/с.
Официальный сайт проекта находится по адресу http://www.vorbis.com/, где можно найти свежие версии библиотек и инструменты для работы с данным форматом. Дистрибутив Kubuntu, как и все остальные, изначально работает с этим форматом. Есть в репозитарии и пакет mp32ogg, позволяющий конвертировать файлы MP3 в Ogg Vorbis.
Для кодирования аудиофайлов в Ogg Vorbis предназначена утилита oggenc. Формат вызова в самом простом случае такой:
$ oggenc somefile.wav
Указать другое качество и название файла, отличное от оригинального, можно, использовав -q и -о (последний можно в большинстве случаев опускать).
$ oggenc infile.wav -q 9 out.ogg
Можно также указать битрейт, для этого существуют следующие параметры: -b устанавливает скорость приблизительно равную указанной, а -m и -М указывают соответственно на минимальный и максимальный битрейт.
$ oggenc infile.wav -b 128 -M 160 out.ogg
В командной строке можно сразу ввести информацию о файле (артист, альбом и так далее), которая, кстати, не ограничивается в спецификации формата. Указав образец (pattern), можно переименовать получившиеся на выходе файлы.