Icecast — ещё одно онлайн-радио: установка и настройка

У Icecast по сравнению с Shoutcast есть одно неплохое преимущество: он умеет работать с OGG-потоками.

Скачаем и распакуем архив с исходниками:

warehouse:~# wget http://downloads.xiph.org/releases/icecast/icecast-2.3.2.tar.gz
warehouse:~# tar zxf icecast-2.3.2.tar.gz
warehouse:~# cd icecast-2.3.2

Для сборки потребуются дополнительные исходники библиотек:

warehouse:~/icecast-2.3.2# apt-get install libogg-dev libvorbis-dev libtheora-dev libspeex-dev libcurl4-openssl-dev libxslt-dev

Теперь можно приступить к конфигурации:

warehouse:~/icecast-2.3.2# ./configure —prefix=/usr/local/icecast —with-ogg —with-theora —with-curl —with-vorbis —with-openssl

А затем к сборке и установке:

warehouse:~/icecast-2.3.2# make && make install

После установки редактируем конфигурационный файл:

warehouse:~# mcedit /usr/local/icecast/etc/icecast.xml

В целях безопасности рекомендуется найти ветку:

<security>
<chroot>0</chroot>
<!—
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
—>
</security>

и активировать chroot:

<security>
<chroot>1</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>

Приведу здесь свой рабочий конфиг. У меня настроена ретрансляция двух сетевых радиостанций:

<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>

<authentication>
<source-password>pass1</source-password>
<relay-password>pass2</relay-password>
<admin-user>admin</admin-user>
<admin-password>admin_pass</admin-password>
</authentication>

<shoutcast-mount>/live.nsv</shoutcast-mount>
<hostname>radio</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
<relay>
<server>xx.xx.xx.xx</server>
<port>xxxx</port>
<mount>/</mount>
<local-mount>/radio1.ogg</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

<relay>
<server>xx.xx.xx.xx</server>
<port>xxxxx</port>
<mount>/</mount>
<local-mount>/radio2.ogg</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

<fileserve>1</fileserve>

<paths>
<basedir>/usr/local/icecast/</basedir>
<logdir>/var/log/icecast/</logdir>
<webroot>/share/icecast/web</webroot>
<adminroot>/share/icecast/admin</adminroot>
<pidfile>/usr/local/icecast/icecast.pid</pidfile>
<alias source=»/» dest=»/status.xsl»/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel> <!— 4 Debug, 3 Info, 2 Warn, 1 Error —>
<logsize>10000</logsize> <!— Max size of a logfile —>
</logging>

<security>
<chroot>1</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>
</icecast>

Далее остаётся только запустить приложение в фоне:

warehouse:~# /usr/local/icecast/bin/icecast -c /usr/local/icecast/etc/icecast.xml &

открыть URL в любом проигрывателе http://radio.local:8000/radio1.ogg и наслаждаться хорошей музыкой.

EnglishRussianUkrainian