Свободные форматы
В данном руководстве основное внимание уделяется обработке и
конвертированию файлов в свободные форматы, под которыми в данном случае
подразумеваются
FLAC (Free Lossless Audio Codec) и
Ogg Vorbis (свободный формат сжатия с потерями), однако уделено внимание и
MP3.
Я настоятельно рекомендую использовать свободные форматы. Прежде всего, в
этом случае не будет проблем с их поддержкой в Linux, так как все
дистрибутивы имеют установленные по умолчанию плейеры, поддерживающие
эти форматы. Не нужно устанавливать дополнительные кодеки. У такого
подхода есть и недостаток - большинство портативных плейеров
поддерживает MP3, но не поддерживает Ogg Vorbis. Хотя при желании можно
найти плейер с поддержкой Ogg Vorbis, или альтернативную прошивку,
например
Rockbox, с поддержкой свободных форматов.
Форматы сжатия с потерями и без потерь качества звука
Форматы сжатия без потерь полностью сохраняют качество исходного
звука, однако получаемые при этом файлы имеют большой размер. Примерами
таких форматов являются FLAC и WAV. С другой стороны, форматы сжатия с
потерями, такие как Ogg Vorbis и MP3, позволяют получить значительно
меньший размер файлов, однако часть аудиоданных при этом безвозвратно
теряется. Однако при битрейте 128 кб/с и выше разница между форматами на
слух практически не ощутима. Форматы сжатия с потерями как правило
используются, чтобы разместить большие коллекции музыки на портативных
устройствах, а форматы сжатия без потерь - если важно сохранить
оригинальное качество звука.
Необходимые инструменты
В этом разделе мы опишем все инструменты, необходимые для выполнения
операций, описанных в данном руководстве. Обратите внимание, что многие
из них необходимы только для производства какой-либо одной операции,
поэтому возможно все они вам не понадобятся. Ниже приведен список всех
необходимых программ с кратким описанием:
vorbis-tools - этот пакет включает инструменты для работы с Ogg Vorbis: oggenc (энкодер), ogg123 (плейер командной строки для Ogg Vorbis и FLAC), ogginfo (показывает информацию о файлах Ogg), oggdec (декодер), vcut (утилита для разрезания файлов Ogg), vorbiscomment (редактор комментариев для Ogg).
flac - этот пакет включает инструменты для работы с FLAC: flac (энкодер/декодер) и metaflac (для работы с метаданными FLAC).
cuetools - инструменты, используемые для работы с файлами CUE; нам здесь нужна только утилита cuebreakpoints.
shntool - это утилита для обработки файлов WAV.
cdparanoia - используется для копирования аудио компакт-дисков.
abcde - используется также для копирования аудио компакт-дисков.
mplayer - используется для конвертирования AC3 в WAV.
id32v2 - предназначен для редактирования тегов ID3v2.
lame - свободный кодировщик MP3.
monkeys-audio - пакет, включающий декодер mac для формата APE.
dir2ogg - используется для конвертирования WMA в Ogg.
Конвертирование FLAC в WAV и наоборот
Для начала необходимо установить пакет flac:
$ sudo apt-get install flac
Для конвертирования файла FLAC в WAV служит команда вида:
$ flac -d input_file.flac
Ключ -d указывает на то, что входной файл декодируется. Пример:
Простейшая команда для конвертирования WAV во FLAC:
$ flac input_file.wav
При этом будет создан файл input_file.flac. Можно задать и другое имя, например:
$ flac input_file.wav -o output_file.flac
Также можно задать степень сжатия (от 1 до 8, по умолчанию - 5). Чем выше степень сжатия, тем меньше размер полученного файла:
$ flac -8 input_file.wav -o output_file.flac
При выполнении этой команды будет создан файл output_file.flac с наивысшей степенью сжатия.
Конвертирование FLAC или WAV в Ogg Vorbis
Ogg Vorbis - это свободный от патентов формат сжатия аудиоданных с
потерями, который очень хорошо поддерживается всеми основными
дистрибутивами Linux. Он используется во многих приложениях и играх с
открытым исходным кодом. В приведенном ниже примере я покажу, как
конвертировать FLAC в Ogg Vorbis (эта команда применяется и для
конвертирования WAV) с использованием наиболее широко применяемых опций.
Для этого используется утилита oggenc, которая является официальным энкодером Ogg:
$ oggenc input_file.flac
При этом будет создан файл input_file.ogg с качеством по
умолчанию (3). Качество сжатия может задаваться в диапазоне от -1 (~45
кб/с) до 10 (~500 кб/с). По умолчанию уровень качества равен 3, что
примерно соответствует 112 кб/с. Допускаются дробные уровни качества.
Также можно задать имя конечного файла. Например, нижеследующая команда
выполняет конвертирование файла FLAC в Ogg Vorbis с уровнем качества 6
(~192 кб/с). Вывод производится в файл output_file.ogg:
$ oggenc -q 6 input_file.flac -o output_file.ogg
Вместо уровня качества можно задать битрейт:
$ oggenc -b 192 input_file.flac -o output_file.ogg
Редактирование тегов Ogg Vorbis
Для работы с тегами необходимо установить только пакет vorbis-tools, в состав которого входит утилита vorbiscomment, используемая для редактирования тегов:
$ sudo apt-get install vorbis-tools
vorbiscomment - это утилита, позволяющая редактировать или
удалять теги Ogg Vorbis, в число которых входят название песни, автор,
альбом, год, трек и так далее. Допускаются также произвольные поля.
В качестве примера добавим к песне новый тег, называемый "TITLE", и добавим значение этого тега "Wasted Years":
$ vorbiscomment -t "TITLE=Wasted Years" -w input_file.ogg
В приведенной выше команде мы используем ключ -t (или --tag), чтобы добавить тег TITLE со значением Wasted Years, и записать его (-w) в файл input_file.ogg. Просмотреть результат можно с помощью команды:
$ vorbiscomment -l input_file.ogg
Ключ -l используется для вывода списка тегов в файле Vorbis. Обратите внимание, что ключ -w
перезаписывает файл, поэтому все имевшиеся до этого теги будут стерты.
Чтобы добавить тег к уже существующим используется ключ -a вместо -w.
В качестве альтернативы можно считывать теги из текстового файла. Например:
$ vorbiscomment -c file.txt -w input_file.ogg
Файл file.txt должен содержать теги, по одному в строке, например:
ARTIST=Iron Maiden
TITLE=Wasted Years
ALBUM=Somewhere in Time
YEAR=1986
TRACKNUMBER=2
Самый простой способ очистить все теги - это создать пустой файл и с
помощью vorbiscomment скопировать его содержимое в файл Ogg Vorbis:
$ touch empty_file
$ vorbiscomment -c empty_file -w input_file.ogg
Ниже приведен короткий скрипт, удаляющий все теги из всех файлов Vorbis в дирекории:
#!/bin/bash
echo "Ogg Tag Remover"
echo "Creating empty file..."
touch empty_file
echo "Removing all tags in Ogg files..."
for i in *.ogg; do
vorbiscomment -c empty_file -w "$i"
done
echo "Removing empty file..."
rm empty_file
echo "Done!"Еще один скрипт автоматически заполняет тег
TRACKNUMBER для каждго файла Ogg Vorbis в директории:
#!/bin/bash
echo "Ogg TRACKNUMBER Editor"
n=1
for i in *.ogg; do
vorbiscomment -t "TRACKNUMBER=$n" -a "$i"
n=$((n + 1))
done
echo "Done!"На этот раз мы использовали ключ -a для добавления тега к уже существующим. Если бы мы использовали -w, файлы были бы перезаписаны и существующие теги были бы затерты.
Конвертирование FLAC или WAV в MP3
Для конвертирования FLAC или WAV в MP3 мы будем использовать lame (http://lame.sourceforge.net/), бесплатный кодировщик MP3. Чтобы установить его в Ubuntu, введите в терминале:
$ sudo apt-get install lame
Для установки в Debian добавьте репозиторий
Debian Multimedia в файл /etc/apt/sources.list (следуя инструкциям, приведенным на сайте) и выполните следующие команды от имени суперпользователя:
$ apt-get update
$ apt-get install lame
Если наши файлы в формате FLAC, сначала необходимо конвертировать их в WAV (например, flac -d input_file.flac -o output_file.wav). Далее, конвертируем в MP3 с помощью LAME:
$ lame input_file.wav
В результате получим файл MP3 с именем input_file.wav.mp3, закодированный с битрейтом 128 кб/с. Можно задать имя файла:
$ lame input_file.wav output_file.mp3
Для получения нужного битрейта используется ключ -b:
$ lame -b 192 input_file.wav output_file.mp3
К сожалению lame не поддерживает шаблоны, поэтому конвертирование с использованием команд вида lame [0-9]*.wav работать не будет, необходимо использовать что-то вроде:
$ for i in *.wav; do lame $i; done
Еще раз хочу подчеркнуть, не используйте шаблоны с lame. Например,
если у вас в директории есть два файла WAV с именами file1.wav и
file2.wav и вы выполните команду lame *.wav, она будет выполнена как
lame file1.wav file2.wav, поэтому lame интерпретирует file2.wav как имя
конечного файла. В результате в файл file2.wav будет записан результат
конвертации файла file1.wav.
Копирование Audio CD
Инструментом для копирования Audio CD является cdparanoia (http://www.xiph.org/paranoia/). Для ее установки введите команду:
$ sudo apt-get install cdparanoia
Также нам потребуется id3v2 для просмотра и редактирования тегов ID3v2 (он используется утилитой abcde):
$ sudo apt-get install id3v2
Простейшая команда для копирования диска:
$ cdparanoia -B
Ключ -B указывает, что вывод программы должен быть разделен на отдельные файлы WAV. Этим файлам присваиваются имена вида trackN.cdda.wav, где вместо N подставляется номер трека (например, track01.cdda.wav).
Можно указывать дополнительные параметры, например, чтобы скопировать отдельный трек:
$ cdparanoia -B 3
Следующая команда позволяет скопировать треки с 4-го по 9-й:
$ cdpranoia -B 4-9
Также можно при этом вырезать кусок трека в пределах заданного интервала времени:
$ cdparanoia "5[:20.00]-5[5:30.00]"
Будет скопирован трек 5 с момента времени 20 секунд с начала трека по момент времени 5 минут 30 секунд с начала трека.
По умолчанию копия сохраняется в файлах WAV, поэтому при желании их можно конвертировать во FLAC, Ogg Vorbis или MP3.
abcde (A Better CD Encoder) - это фронтенд к cdpranoia и
нескольким другим утилитам, который позволяет копировать CD,
конвертировать файлы и присваивать им теги. Например:
$ abcde -d /dev/cdrom -o mp3
При этом будут скопированы треки Audio CD с устройства /dev/cdrom и конвертированы в формат MP3.
Разрезание FLAC, WAV, или APE с использованием файлов CUE
Для этого нам необходимы три пакета: cuetools, который включает утилиту cuebreakpoints для чтения файлов CUE, shntool для обработки WAV, а также monkeys-audio - пакет, содержащий утилиту mac для создания файлов Monkey's Audio. Чтобы установить вышеперечисленные пакеты, введите в терминале:
$ sudo apt-get install cuetools shntool monkeys-audio
В файле CUE хранится информация о времени начала и конца каждого
трека, которую можно использовать для разрезания больших файлов
(содержащих, например, целый альбом в одном файле). Для этого
используется следующая команда (я привел пример с файлом .flac, однако
так же обрабатывается WAV):
$ cuebreakpoints cue_file.cue | shnsplit audio_file.flac
Вы также можете редактировать CUE с помощью текстового редактора, например, чтобы записать два или более треков в один файл.
Для работы с файлом APE необходимо сначала конвертировать его в WAV:
$ mac input_file.ape output_file.wav -d
Если в директории несколько файлов, для их пакетной конвертации необходимо использовать команду:
$ for in *.ape; do mac "$i" "$i.wav" -d; done
Далее разрезаем полученный WAV, как уже было описано выше:
$ cuebreakpoints cue_file.cue | shnsplit output_file.wav
Конвертирование WMA в Ogg Vorbis
Здесь нам понадобится утилита dir2ogg, которая представляет собой скрипт на Python, позволяющий конвертировать форматы MP3, M4A и WAV в Ogg Vorbis. Установим ее:
$ sudo apt-get install dir2ogg
dir2ogg очень проста в использовании:
$ dir2ogg input_file.wma
Или, если в директории несколько файлов WMA:
$ dir2ogg *.wma
Конвертирование APE в Ogg Vorbis или MP3
Нам понадобятся vorbis-tools (для кодирования Ogg Vorbis), lame (для кодирования MP3) и monkeys-audio (для APE):
$ sudo apt-get install vorbis-tools lame monkeys-audio
В Debian добавьте репозиторий Debian Multimedia для установки lame.
Чтобы конвертировать APE в Ogg Vorbis, сначала преобразуем его в WAV с помощью утилиты mac:
$ mac input_file.ape output_file.wav -d
Если в директории находятся несколько файлов, которые вы хотите конвертировать, используйте следующую команду:
$ for i in *.ape; do mac "$i" "$i.wav" -d; done
А теперь конвертируем WAV в Vorbis:
$ oggenc -b 256 input_file.wav
Или в MP3:
$ lame -b 256 input_file.wav
Конвертирование AC3 в WAV с помощью MPlayer
Сначала устанавливаем mplayer (http://www.mplayerhq.hu/design7/news.html):
$ sudo apt-get install mplayer
Команда для конвертирования имеет вид:
$ mplayer -ao pcm:file=output_file.wav input_file.ac3
При этом файл input_file.ac3 будет конвертирован в output_file.wav с использованием PCM audio.
Аудиоплейеры
Для Linux имеется множество аудиоплейеров, как с графическим интерфейсом, так и консольных.
Среди графических можно упомянуть:
Amarok - очень мощный и популярный плейер для KDE
Rhythmbox - плейер по умолчанию в GNOME
Banshee - мощный плейер на базе GTK
Clementine - порт классического Amarok 1.4 на KDE4
Jajuk - полнофункциональный плейер, написанный на Java
Qmmp - плейер с интерфейсом в стиле XMMS для KDE
Audacious - плейер с интерфейсом в стиле XMMS для GNOME
Консольные плейеры:
CMus - мощный плейер на базе ncurses
moc - еще один плейер с интерфейсом на базе ncurses
mp3blaster - полнофункциональный консольный плейер
ogg123 - плейер командной строки для Ogg Vorbis и FLAC
mpg123 - плейер командной строки для MP3 и различных других форматов
mplayer - очень мощный аудио и видео плейер
В заключение можно отметить еще клиент-серверные плейеры, такие как
MPD или
XMMS2, а также клиенты для них, например
Sonata или
GMPC.