Установка и настройка IceCast сервера в Slackware Linux (original) (raw)

Что же такое IceCast? Это сервер потокового вещания, поддерживающий mp3 и ogg форматы.

Имеется сервер под управлением Slackware 13.0. Ниже рассмотрим установку сетевого радио в связке IceCast + ices0. Данное руководство в многом пригодится и для FreeBSD-систем, так как их структура похожа на Slackware Linux.

Примечание. Пример установки IceCast2 сервера на Debian Linux я расписал в этой статье: Установка и настройка потокового Icecast2 + ices0 сервера в Debian

Нам потребуются:

приложения:

библиотеки:

В этом примере будет рассмотрена связка из IceCast-2.3.1 и ices-0.4, так как будем использовать mp3-аудиопоток.

Установка библиотек

libmp3lame-3.97

./configure --prefix=/usr

make && make install

libshout-2.2.2

./configure --with-ogg --with-vorbis --with-lame --prefix=/usr

у меня в системе уже была установлена libvorbis, в принципе можно было и без --with-ogg --with-vorbis запускать, конфигуратор должен всё сам найти

make && make install

Установка ices-0.4

./configure --with-lame

make && make install

Установка IceCast

И тут выясняется, что для сборки IceCast требуется наличие в системе ещё нескольких библиотек:

С curl’ом пришлось повозиться. Оказалось, что с новым curl-7.16.2 IceCast отказался собираться, поэтому я использовал curl-7.15.5.

./configure

make && make install

IceCast и всё необходимое для его работы мы установили.

Настройка IceCast

Для начала создадим пользователя и группу от имени которых будет работать IceCast:

groupadd icecast

useradd -g icecast -d /home/icecast -s /sbin/nologin icecast

Создадим некоторые каталоги:

mkdir /home/icecast/admin

mkdir /home/icecast/logs

chown icecast:icecast /home/icecast/logs

mkdir /home/icecast/web

Скопируем файлы:
из /usr/local/share/icecast/admin в /home/icecast/admin
из /usr/local/share/icecast/web в /home/icecast/web

Скопируем /usr/local/share/icecast/doc/icecast.xml.dist в /usr/local/etc/icecast.xml
и изменим его содержимое следующим образом:

<-- Лимиты --> 100 2 5 524288 30 15 10 1 65535 <-- Аутентификация - обязательно измените приведённые здесь пароли --> password password admin password

localhost <-- Порт на котором ожидать соединений --> 8000 1

<-- Пути --> /home/icecast /home/icecast/logs /home/icecast/web /home/icecast/admin /home/icecast/logs/icecast.pid access.log error.log 4 0 icecast icecast

Ограничим доступ к конфигу IceCast (тк он содержит пароли):

chown root:root /usr/local/etc/icecast.xml

chmod 640 /usr/local/etc/icecast.xml

Запустим IceCast сервер:

icecast -b -c /usr/local/etc/icecast.xml

Теперь можно зайти на веб-интерфейс по адресам:
http://localhost:8000/ (статус сервера), и
http://localhost:8000/admin/ (интерфейс администратора).

Настройка ices

После установки ices в каталоге /usr/local/etc/ должен быть файл ices.conf.dist
Скопируем его в /usr/local/etc/ices.conf и отредактируем:

<ices:Configuration xmlns:ices="" title="undefined" rel="noopener noreferrer">http://www.icecast.org/projects/ices"> playlist.txt 1 builtin ices

1 0 /tmp localhost 8000 <-- пароль должен быть такой же как в секции конфига icecast --> password http

/test Default stream Default genre Default description http://localhost:8000/test 0

128 1 44100 2

Ограничим доступ к /usr/local/etc/ices.conf:

chmod 640 /usr/local/etc/ices.conf

Последний этап

Пусть у нас есть директория /media/music с несколькими mp3 файлами.
Создадим playlist для этой директории:

cd /media/music

ls > playlist.txt

Запустим ices:

ices -c '/usr/local/etc/ices.conf'

По адресу http://localhost:8000/test должна играть ваша музыка :)

Для организации нескольких каналов музыки используйте возможности командной строки ices, например:

ices -c '/usr/local/etc/ices.conf' -D '/media/music/' -F '/media/music/album1/playlist.txt' -m 'sample1' -u 'https://siava.ru:8000/sample1' -d 'sample1 descr' -n 'blablabla1' -g 'test1' -b 192 -B

ices -c '/usr/local/etc/ices.conf' -D '/media/music/' -F '/media/music/album2/playlist.txt' -m 'sample2' -u 'https://siava.ru:8000/sample2' -d 'sample2 descr' -n 'blablabla2' -g 'test2' -b 160 -B

таким образом, будут организованы 2 канала с музыкой.

Ну и конечно же, неплохо сделать так, чтобы ices запускался не под root’ом, как в примерах выше. Для этого можно завести отдельного пользователя, либо использовать пользователя icecast. Строка запуска ices немного изменится:

su icecast -c "ices ..."

Всё представленное выше работает на данном сервере по адресу: https://m.siava.ru/
Спасибо за внимание. Надеюсь статья кому-нибудь будет полезна. © Siava.Ru