Установка и настройка 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-аудиопотока на IceCast сервер
либо - ices-2.0.1 — для посылки ogg-аудиопотока на IceCast сервер
библиотеки:
В этом примере будет рассмотрена связка из 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 требуется наличие в системе ещё нескольких библиотек:
- libxml2
- libxslt
- curl (>= version 7.10 required)
- ogg/vorbis — (>= version 1.0 required)
С 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
и изменим его содержимое следующим образом:
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