Устанавливаем командой
# pkg_add -rv icecast2
После подтягивания всех зависимостей (список) видим подсказку по настройке:
/usr/local/etc/icecast.xml.sample to /usr/local/etc/icecast.xml
и
icecast_enable="YES" to /etc/rc.conf
Создаём в FreeNAS:
- группу sound [2000] (уже создана для mpd)
- пользователя icecast [2002]-nologin-sound-nogroup
Настройка
Читаем конфигурационный файл на англ. - http://www.icecast.org/docs
Читаем настройку на русском - http://www.opennet.ru
Редактируем конфиг icecast.xml - это собственно и есть настройка.
На путях и логировании останавливаться не будем.
Главное не забыть задать адрес радио:
<hostname>10.10.10.10</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
Создаём раздел Релея (читалка):
<relay>Права
<server>shoutcast.byfly.by</server>
<port>88</port>
<mount>/nashe256</mount>
<local-mount>/nashe256</local-mount>
<on-demand>1</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>sound</group>
</changeowner>
</security>
Ограничим доступ к конфигу IceCast (тк он содержит пароли).
Даём права на рабочую директорию:
/usr/local/share/icecast
Запускаем:
icecast -b -c /usr/local/etc/icecast.xml
Тестируем:
Статистику и админку: http://10.10.10.10:8000
Сам поток радио: http://10.10.10.10:8000/test_radio
Замечания
Релей
Тянуть поток только тогда, когда его об этом попросят пользователи ретранслятора:
<on-demand>1</on-demand> - глобально
<relays-on-demand>1</relays-on-demand> - применительно к каждому релею
А ещё добавлю службу строкой
$menu['services']['menuitem'][] = array("desc" => gettext("icecast"), "link" => "http://10.10.10.10:8008/", "visible" => TRUE);
в файле /usr/local/www/fbegin.inc