Icecast2 - это программа ретранслятор аудио-потоков. Позволяет перенаправлять аудио-потоки в том числе из интернет в локальную сеть, проигрывать медиа-файлы с доступного файлового источника, например с жёсткого диска, в формате .ogg, .mp3. При использовании
Icecast2 вместе с такими программами как
OGG/Vorbis, MP3 streaming client можно создать интернет-радио.
Процесс установки:
yum groupinstall "Development Tools"
yum install -y curl-devel libtheora-devel libvorbis-devel libxslt-devel speex-devel libxslt
mkdir -p /usr/src/icecast
cd /usr/src/icecast
yum install wget
wget http://downloads.xiph.org/releases/icecast/icecast-2.4.4.tar.gz
Извлекаем полученные файлы:
tar xf icecast-2.4.4.tar.gz
cd icecast-2.4.4
Конфигурируем:
./configure --prefix=/opt/icecast/2.4.4
Собираем:
Делаем симлинк с каталогом 2.4.4
cd /opt/icecast
ln -s 2.4.4 latest
Редактируем файл icecast.xml
cd /opt/icecast/latest/etc
mv icecast.xml icecast.xml.orig
yum install nano
nano icecast.xml
Содержимое файла icecast.xml
<icecast>
<!-- LIMITS -->
<limits>
<clients>100</clients>
<sources>10</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>
<!-- GENRIC -->
<authentication>
<source-password>password</source-password>
<admin-user>admin</admin-user>
<admin-password>password</admin-password>
</authentication>
<hostname>MyHost/IP</hostname>
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
</listen-socket>
<fileserve>1</fileserve>
<!-- PATHES -->
<paths>
<basedir>/opt/icecast/latest/share/icecast</basedir>
<webroot>/opt/icecast/latest/share/icecast/web</webroot>
<adminroot>/opt/icecast/latest/share/icecast/admin</adminroot>
<logdir>/var/log/icecast</logdir>
<pidfile>/var/run/icecast/icecast.pid</pidfile>
<alias source="/" dest="/status.xsl"/>
</paths>
<!-- LOG -->
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>1</loglevel>
<logsize>10000</logsize>
<logarchive>1</logarchive>
</logging>
<!-- SECURITY -->
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
Первый раздел
LIMITS определяет, сколько радиостанций вы хотите создать максимум (sources = 10), сколько клиентов может подключиться (clients = 100) и т.д.
Второй раздел
GENERIC определяет имя пользователя, имя хоста (MyHost / IP), порт (8000) для самого сервера.
Раздел
PATHES определяет пути к webgui.
Раздел
LOGGING, конечно, предназначен для ведения журнала.
Раздел
SECURITY определяет под каким пользователем должен запускаться icecast и какой группой.
Создаем пользователя и группу (icecast).
groupadd -g 200 icecast
useradd -d /var/log/icecast -m -g icecast -s /bin/bash -u 200 icecast
Создаем каталог для pid файла:
mkdir -p /var/run/icecast
chown -R icecast:icecast /var/run/icecast
Запускаем сервер:
/opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b
-b указывает на то, что вывод необходимо открепить от консоли, иначе при выходе из консоли остановится сервер.
-с указывает на путь к файлу конфигурации.
Добавляем в автозагрузку:
chkconfig --add icecast
chkconfig --level 35 icecast on
Для проверки работу переходим по адресу //MyHost/IP:8000/, пароль и пользователь указаны в файле icecast.xml.
Кроме того, можно написать скрипт автозапуска сервера. Создадим в директории etc/rc.d файл и назовем его icecast.
Пропишем там следующее:
#!/bin/sh
. /etc/rc.subr
name="icecast"
command="/home/$USER/icecast/bin/icecast"
command_args="-b -c /home/$USER/icecast/etc/icecast.xml"
sig_stop=KILL
load_rc_config "$name"
run_rc_command "$1"
Сохраним файл и дадим ему права на выполнение:
chmod +x etc/rc.d/icecast
Теперь можно запускать сервер командой etc/rc.d/icecast start