Плавные переходы между композициями в ardj

В этой заметке описано как добиться плавных переходов между композициями в эфире радиостанции, работающей под управлением ardj.  В конце заметки есть сжатая инструкция с набором конкретных команд.  При обнаружении ошибок или появлении идей по улучшению этой инструкции пишите письма.

Введение

Вещание интернет-радио в ardj основано на трёх компонентах:

  • Генератор плейлиста (ardj).  Это мозг станции.  Он решает когда какой файл проигрывать, сообщает об этом генератору потока.
  • Генератор потока (ezstream).  Он читает из плейлиста имена файлов, декодирует их из кучи разных форматов, кодирует в MP3 и отправляет в мультиплексор.
  • Мультиплексор (icecast2).  Он получает сформированный поток (MP3 или Ogg/Vorbis) и раздаёт его всем желающим слушателям.

Формированием звукового потока по умолчанию занимается ezstream.  В большинстве современных вариантов ОС GNU/Linux это основной генератор потока.  Он поддерживается сообществом, но не умеет делать плавные переходы между композициями.  Это умеет делать ices0 — довольно старый генератор потока, заброшенный авторами (deprecated), поэтому он обычно отсутствует в системных репозиториях.  Но даже если он в них есть — он не поддерживает ReplayGain (выравнивание громкости композиций).  Далее описана процедура сборки версии ices0, пригодной для формирования эфира с плавными переходами и выравниванием громкости.

Получение исходного кода

Стандартная реализация ices0 не поддерживает ReplayGain.  Авторы не желают поддерживать эту ветку ПО и предлагают использовать ices2, который, к сожалению, не умеет формировать MP3 поток и не подходит для организация радиостанции для широких масс.  Взять версию с поддержкой ReplayGain можно в репозитории разработчиков ardj:

$ hg clone http://bitbucket.org/umonkey/ices0

Для того, чтобы скомпилировать исходный код, нужно установить несколько утилит и библиотек.  В Ubuntu для этого достаточно одной команды:

$ make ubuntu-depends

Сборка:

$ make
...
$ make install
sudo install ices /usr/local/bin/ices
sudo install doc/ices.1 /usr/share/man/man1/ices.1

Теперь ices готов к работе, ardj его найдёт и будет использовать вместо ezstream.

Сжатая инструкция

Инструкция для Ubuntu:

$ sudo apt-get install build-essential
$ make
$ make install

Ссылки

Следить за развитием событий можно через RSS ленту или почтовую рассылку.