Сразу после своего появления формат .mp3 приобрел бешеную популярность у пользователей персонального компьютера. Подумать только, теперь аудиодиск размером 650 Мб можно загнать во вдесятеро меньший объем, при этом сохранив приемлемое качество. Созданные таким образом файлы можно спокойно пересылать через Интернет, использовать в переносных устройствах, собирать музыкальную коллекцию. Но не все было так безоблачно. Появившись, он практически сразу стал причиной многочисленных скандалов, споров, преследований.
Все началось с того, что компании Fraunhofer Institute и Thomson Multimedia, имеющие патент на данный формат, объявили, что он, увы, совсем не бесплатный, и потребовали некоторых отчислений за каждый кодек (программа, которая создает данный файл). Но и этого мало: постоянно в Сети появляются сообщения о том, что условия лицензирования данного продукта могут в корне измениться, и теперь придется платить и за каждый распространенный экземпляр декодера (проигрывателя). Вдоволь наслушавшись споров и возмущений общественности, остановились (пока) на отчислениях только с коммерческих программ и бытовых устройств, но кто знает, что нас ждет впереди. С другой стороны, в странах, особо тщательно следящих за соблюдением патентов, могут возникнуть проблемы при его использовании, именно поэтому компания Red Hat, находящаяся в США, отказалась от включения в последних версиях своего дистрибутива средств работы с данным форматом, опасаясь возможных проблем.
Следующая проблема заключается в том, что в самом формате не была заложена возможность препятствовать нарушению копирайта — мы ведь помним, что произошло с Napster и подобными сервисами. Даже всемогущая Microsoft не удержалась и на всякий случай изобрела быстренько свой собственный алгоритм сжатия звуковых файлов (формат .wma), который, правда, большого успеха у пользователей не имел, на мой взгляд, именно по причине плохого качества получаемого звука. Не остался в стороне и мир OpenSource — в июле 2002 года миру был официально представлен оригинальный формат сжатия звука, именуемый Ogg Vorbis. Спонсором проекта на первом этапе была компания iCast, транслировавшая и распространявшая музыку через Интернет. В случае успеха и перехода на новый формат она могла бы сэкономить на отчислениях, но к сожалению, до выхода своего детища компания разорилась.
Итак, что же представляет собой новый формат? Самое главное отличие данного формата от предыдущих в том, что он полностью открытый и свободный в распространении. Все исходные коды полностью доступны, но если кодер и декодер распространяются по лицензии GPL, то библиотеки и средства разработки (SDK) — под лицензией BSD.
При сжатии звука кодек Ogg Vorbis использует совсем другие психоакустические модели, причем более совершенные по сравнению с теми, что используются в mp3. Поэтому при одинаковом размере файлов музыка Ogg Vorbis звучит лучше. Многочисленные тестирования показали, что по большинству параметров данный формат если не обходит, то уж по крайней мере не уступает своим конкурентам. Еще одна особенность отличает Ogg Vorbis — дело в том, что большинство кодеков mp3 (кроме некоторых «новых» типа Lame, но большинство портативных проигрывателей не понимают данное расширение) и по сей день используют постоянный битрейт при кодировании звука, т.е. если мы кодируем песню с 128 Кбит/с, то такой кодек будет тупо следовать установкам, несмотря на то, что в песне может быть разный ритм или вообще будет пауза, что, во-первых, приводит к нерациональному использованию дискового пространства, а во-вторых, теряется качество в тех местах, где мелодия очень насыщена и где желателен битрейт раза в два выше для более качественной передачи нюансов. А вот в Ogg Vorbis сразу отказались от такой постановки вопроса — все кодеки работают изначально с переменным битрейтом, поэтому и файлы получаются меньше размером (от 15 до 20%, представьте, какая экономия!) и качественнее сохраняют заложенную информацию.
А чтобы пользователь не ломал голову, с каким же ему битрейтом ему работать в Ogg Vorbis, используется более понятный термин «качество», т.е. насколько близко полученный файл должен соответствовать оригиналу. Если для mp3 CD-качество достигалось при 256 Кбит/с, т.е. тестеры не могли отличить записанную таким образом мелодию от оригинала, при этом стандартным считается 128 Кбит/с, а 64 Кбит/с примерно соответствует качеству FM-радио, то в формате Ogg принята шкала качества в диапазоне от 0 до 10 с шагом хоть 0.01, что, кстати, позволяет более тонко подобрать для себя приемлемое соотношение качество/размер. Так, качеству 3 соответствует стандартному звучанию для mp3 128 Кбит/с, битрейт же файла Ogg Vorbis составляет 112 Кбит/с (звучащий порой даже как 160 Кбит/с), получившийся же файл процентов на 20 меньше. Качеству FM-радио соответствует 0, качество 10 соответствует приблизительно битрейту 400 Кбит/с, впрочем, в спецификации нет никакого ограничения на битрейт — все зависит только от возможностей используемого кодека.
В Ogg Vorbis, кстати, заложена возможность, называемая bitrate peeling, суть ее состоит в том, что есть возможность «напрямую» перекодировать файл из более высокого в более низкий битрейт (например, для использования в носимых плейерах), избегая при этом возможных потерь качества, возникающих при дополнительных (читай: лишних) преобразованиях. Но пока инструментов, в которых реализована данная функция, нет. Что ж, будем ждать.
И еще одно интересное отличие. Дело в том, что создатели не ограничились двумя каналами (левым и правым), а сразу забили место аж под 256. Ну как не воспользоваться этой возможность тем, кто кодирует видео, — в один файл можно при желании запихать все каналы АС3, и притом на различных языках. В формате также была заложена возможность работы в потоковом режиме, что позволяет его без лишних затрат использовать для трансляции в Интернет.
Наверное, уже хватит теории, перейдем к практике. Сразу оговорюсь: так как я использую Linux, то и рассматривать инструменты буду под данную платформу. Хотя расширения для работы с Ogg Vorbis есть уже для всех Windows-проигрывателей (кстати, попробуйте Quintessential http://www.quinnware.com/downloads/qcd340.exe, прикольная штука), а инструмент для работы с данным форматом можно взять с http://fatpipe.vorbis.com/files/1.0/windows/vorbis-tools-1.0-win32.zip.
Итак, возвращаемся к нашим пингвинам. Официальный сайт проекта находится по адресу http://www.vorbis.com/, где можно найти свежие версии библиотек libvorbis и инструментов для работы с данным форматом. Для Linux необходимо установить пакет Vorbis-tools, в состав которого входит несколько программ.
Для кодирования аудиофайлов в Ogg Vorbis предназначена программа oggenc. Формат вызова в самом простом случае такой (как перегнать с аудиодиска в .wav — в отдельной статье):
в режиме по умолчанию используется качество, равное 3, этого обычно хватает в большинстве случаев. Если есть необходимость указать другое качество и название файла, отличное от оригинального, то воспользуйтесь опциями -q и -о (последнюю можно в большинстве случаев опускать):
Но по старинке можно указать и битрейт, для этого существуют следующие опции: -b устанавливает скорость, приблизительно равная указанной; -m и -М указывают на соответственно минимальный и максимальный битрейт. Например, вполне возможен такой вариант команды:
В командной строке можно сразу же указать информацию о файле (артист, альбом и т.д.), которая, кстати, в спецификации формата никем и ничем не ограничивается — о том, что туда можно будет поместить в будущем (например, рисунок), остается только догадываться. Указав образец (pattern), можно сходу переименовать получившиеся на выходе файлы.
После данной команды получившийся файл будет называться Артист-Название_песни.ogg, по аналогии можно воспользоваться и опциями %l, %G. Об остальных опциях читайте в man. Хочу сразу предостеречь буйные головы, которые горазды перегнать все свою коллекцию эмпешек в Ogg Vorbis. Не робiть цього — в этих кодеках используются различные модели преобразования, соответственно, разная часть информации теряется при кодировании. То есть, в результате такого двойного перекодирования (mp3-wav-ogg) качество получившегося звука будет не лучше, а то и намного хуже. Для тех же, кто все-таки хочет попробовать, попробуйте:
К услугам тех, кто не хочет возиться с командной строкой, в Интернете полно различных фронтэндов к данной утилите — например, Korbis для библиотек QT (http://korbis.sourceforge.net/) или jorbis (http://www.jcraft.com/jorbis) для поклонников Java. К тому же в файловом менеджере Konqueror встроена возможность автоматического перекодирования CD-ROM в данный формат. Для этого нужно обратиться к боковой панели в подменю Просмотрщик аудио CD > Ogg Vorbis, и все содержимое компакт-диска будет представлено в виде файлов с расширением .ogg; теперь осталось просто скопировать дорожки в нужное место, в процессе чего они автоматически перекодируются (таким же образом можно живенько перегнать аудиодиск в .wav).
Для проигрывания созданных таким образом файлов в комплект входит плейер ogg123. В самом простом случае строка для запуска такая:
При этом проиграются все файлы с расширением .ogg в текущем каталоге; программа понимает также URL, поэтому команда
не вызовет недоразумений. Иногда требуется указать специфические параметры, например, звуковой сервер: -d (null, oss, alsa и т.д.), для некоторых из них с помощью -о можно указать специфические параметры:
Поддержка устройств реализована с помощью библиотеки libao, то есть, в файле /etc/libao.conf или $HOME/.libao можно раз и навсегда указать требуемые параметры, например default_driver=oss. С флагом -f вывод программы происходит в указанный файл, так можно без проблем перекодировать .ogg-файл в .wаv.
При указании вместо названия файла черточки (-) аудиопоток будет выводиться стандартно.
Утилита ogginfo позволяет получить информацию об .ogg-файле:
При этом будет выведена вся информация о файле в виде attribute=value. Таким образом можно узнать битрейт (максимальный, минимальный, номинальный), с которым закодирован файл, продолжительность звучания и другую полезную информацию.
А вот с помощью vorbiscomment можно отредактировать тэги.
Вот так можно вывести все тэги в файл:
С помощью флага -а можно добавить информацию в файл, дополнительно для этого используется флаг -t в виде tag=value.
Но можно информацию для удобства взять из файла с помощью -с, формат записи аналогичен выводимому при помощи -l.
Ogg Vorbis уже пользуется популярностью. Есть сайты, на которых появились файлы в формате .ogg, наиболее известный из них проект — Open Music (http://om.lrn.ru/); как вы помните, в состав 10-дисковой версии AltLinux Master 2.0 входил диск с музыкой в данном формате. Единственное, что пока сдерживает массовое продвижение и победу Ogg Vorbis, — отсутствие поддержки в бытовых устройствах. По-видимому, это связано с общей инертностью производства, ведь прежде чем уйти с накатанной колеи, производители должны присмотреться поближе к новому формату.
По крайней мере, успех нового формата окрылил других. К лету 2003-го ожидается выход свободного видеокодека Theora (http://www.theora.org/), который прочится на замену MPEG-4 и RealAudio.
Viva OpenSource!