Плавные переходы между композициями в 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 ленту или почтовую рассылку.