16.3 Звук MP3 во FreeBSD


Предоставлено Chern Lee.

MP3 (MPEG Layer 3 Audio) достигает качества звука, близкого к CD, и не оставляет причин не воспользоваться им на Вашей рабочей станции.
16.3.1 Проигрыватели MP3

На данный момент наиболее популярным MP3-проигрывателем для XFree86 является XMMS (X Multimedia System). Скины приложения WinAMP могут быть использованы для XMMS так как графический интерфейс пользователя практически идентичен тому, который имеет программа фирмы Nullsoft WinAMP. XMMS также имеет собственную поддержку расширений.

XMMS может быть установлен из порта или пакета multimedia/xmms.

Интерфейс XMMS интуитивно понятен и включает в себя список песен, графический эквалайзер и многое другое. Те, кто знаком с WinAMP найдут XMMS очень простым в использовании.

Порт audio/mpg123 является альтернативой, это MP3-проигрыватель для командной строки.

mpg123 может быть запущен с указанием звукового устройства и файла MP3 в командной строке как показано ниже:
# mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

Playing MPEG stream from BT - Foobar-GreastHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

/dev/dsp1.0 должно быть заменено соответствующим устройством dsp для Вашей системе.
16.3.2 Копирование аудиодорожек с CD

Перед тем как преобразовывать CD или дорожку CD в MP3, аудиоданные на CD должны быть скопированы на жёсткий диск. Это можно сделать путём копирования данных CDDA (CD Digital Audio) в файл WAV.

Утилита cdda2wav, которая является частью пакета sysutils/cdrtools, может быть использования для копирования аудиоинформации с CD, а также различной связанной с ними.

Когда музыкальный CD находится в приводе, следующая команда может быть использована (от пользователя root) для того, чтобы скопировать весь CD в отдельные (один на каждую дорожку) WAV файлы:
# cdda2wav -D 0,1,0 -B

cdda2wav поддерживает ATAPI (IDE) приводы CDROM. Для копирования с IDE привода, укажите имя устройства вместо SCSI LUN. Например, для того, чтобы скопировать 7-ую аудиодорожку с IDE-привода:
# cdda2wav -D /dev/acd0a -t 7

Параметр -D 0,1,0 указывает устройство SCSI 0,1,0, соответственно результату работы cdrecord -scanbus.

Для того, чтобы копировать отдельные дорожки, используйте параметр -t как показано ниже:
# cdda2wav -D 0,1,0 -t 7

Этот пример показывает как скопировать 7-ю дорожку музыкального CD. Для того чтобы скопировать набор дорожек, например, с первой по седьмую, укажите диапазон:
# cdda2wav -D 0,1,0 -t 1+7

Утилита dd(1) также может быть использована для копирования аудиодорожек на приводах ATAPI, для того, чтобы узнать больше об этом, прочитайте Section 12.5.5.
16.3.3 Создание (encoding) файлов MP3

На сегодняшний день наилучшим выбором программы для создания mp3 является lame. Lame находится в дереве портов в подкаталоге audio/lame.

Используя скопированные файлы WAV следующая команда преобразует audio01.wav в audio01.mp3:
# lame -h -b 128
--tt "Foo Song Title"
--ta "FooBar Artist"
--tl "FooBar Album"
--ty "2001"
--tc "Ripped and encoded by Foo"
--tg "Genre"
audio01.wav audio01.mp3

Частота 128 килобит является стандартом "де факто" для MP3. Многие, однако, используют более высокие частоты для получения лучшего качества, 160 или 192 килобита. Чем выше частота, тем больше дискового пространства будет занимать получаемый MP3, но качество будет выше. Параметр -h включает режим ``лучшее качество, но меньше скорость''. Параметры, начинающиеся с --t указывают теги ID3, которые обычно содержат информацию о песне, включаемую в файл MP3. О дополнительных настройках преобразования можно узнать, прочитав страницу руководства lame.
16.3.4 Декодирование MP3

Для того, чтобы записать музыкальный CD из файлов MP3, они должны быть преобразованы в несжатый формат WAV. Как XMMS, так и mpg123 поддерживают вывод MP3 в распакованный формат файлов.

Запись на диск в XMMS:

Запустите XMMS:

Нажмите правой кнопкой мыши в главном окне XMMS для того, чтобы показать меню.

Выберите Preferences (либо Свойства, если у вас локализованная версия XMMS).

Измените расширение вывода на ``Disk Writer Plugin'' (или ``Расширение записи на диск'', если у вас локализованная версия XMMS).

Нажмите Configure (или ``Настройка'', если у вас локализованная версия XMMS).

Введите (или выберите при помощи обзора) каталог, в который следует сохранять распакованные файлы.

Загрузите файл MP3 в XMMS как вы это делаете обычно. Установите громкость на 100% и отключите эквалайзер.

Нажмите Воспроизвести -- XMMS будет выглядеть так же как и при обычном воспроизведении MP3, но самой музыки слышно не будет. На самом деле MP3 воспроизводится в файл.

Убедитесь, что Вы установили расширение вывода таким, как оно было до этого, для того, чтобы снова слушать MP3.

Запись в stdout в mpg123:

Запустите mpg123 -s audio01.mp3 > audio01.pcm

XMMS записывает файл в формате WAV, в то время как mpg123 преобразовывает MP3 в простые аудиоданные PCM. Оба формата могут быть использованы cdrecord для создания музыкальных CD. Для использования burncd(8) вам потребуются простые аудиоданные PCM. Если же вы будете использовать файлы в формате WAV, то заметите небольшой щелчок в начале каждой аудиодорожки, этот щелчок - заголовок файла в формате WAV. Вы очень просто можете избавиться от него путём удаления заголовка WAV при помощи утилиты SoX (она может быть установлена из порта audio/sox или соответствующего пакета:
% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw

Прочтите Section 12.5 для того, чтобы узнать больше о записи CD в FreeBSD.

Обновлено: 12.03.2015