$ 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 , где – число от 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. Формат вызова в самом простом случае такой:
Указать другое качество и название файла, отличное от оригинального, можно, использовав -q и -о (последний можно в большинстве случаев опускать).
$ oggenc infile.wav -q 9 out.ogg
Можно также указать битрейт, для этого существуют следующие параметры: -b устанавливает скорость приблизительно равную указанной, а -m и -М указывают соответственно на минимальный и максимальный битрейт.
$ oggenc infile.wav -b 128 -M 160 out.ogg
В командной строке можно сразу ввести информацию о файле (артист, альбом и так далее), которая, кстати, не ограничивается в спецификации формата. Указав образец (pattern), можно переименовать получившиеся на выходе файлы.
$ oggenc somefile.wav -t «Название_песни» -a «Артист» -l «альбом» -G «жанр» -c «остальные комментарии» -n «%a – %t.ogg»
После данной команды получившийся файл будет называться следующим образом: Артист-Название_песни.ogg.
Консольные фронэнды
Из консольных утилит в первую очередь выделим mp3c (рис. 3.41), которую можно найти на сайте проекта http://mp3c.wspse.de/ или установить пакет из репозитария Ubuntu.
Рис. 3.41. Программа mp3c
В последних версиях для кодирования mp3c использует кодек lame (ранее mp3enc); пакет, устанавливаемый в Ubuntu, настроен на кодирование в Ogg Vorbis. Для изменения настроек следует зайти в меню конфигурации, нажав клавишу F2. Здесь в полях (вход по Enter) нужно убрать все упоминания о серверах CDDB (вряд ли нужно, чтобы программа выходила каждый раз в Интернет, чтобы заполнить поля ID3-тега), указать каталог, в который будут помещаться готовые файлы, и образец для имени файлов и плейлиста, который программа создает автоматически. Новый кодек или параметры кодирования следует указать в поле Program for encoding (Программа для кодирования). Как вариант, можно выбрать одну из предустановок для кодирования в MP3 с использованием lame – Load Presets (MP3/lame) (Предустановки загрузки (MP3/lame)) или Ogg Vorbis – Load Presets (Ogg/oggenc) (Предустановки загрузки (Ogg/oggenc)).
Рекомендуется также включить режим encode on-fly as default (Кодировать на лету по умолчанию), иначе каждый полученный WAV-файл придется кодировать отдельно. Здесь же можно подкоректировать параметры для cdparanoia или CDDA2WAV (используется по умолчанию). После этого сохраните настройки, выбрав Save Config (Сохранить конфигурацию), и выйдите. Теперь нажатием V обновите информацию о вставленном диске и нажмите F3, чтобы кодировать весь диск; если операцию нужно прервать, нажмите F10.