Radio Pozitiv

Музыка различных направлений, новости мира клубной индустрии.
Текущее время: 19-04, 07:26

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 27-12, 16:56 
Не в сети
Администратор
Администратор
Аватара пользователя

Зарегистрирован: 27-12, 14:11
Сообщения: 63
Откуда: Одесса
IceCast

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

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

приложения:
icecast-2.3.1 - серверное приложение

ices-0.4 - утилита для посылки mp3-аудиопотока на IceCast сервер
либо
ices-2.0.1 - для посылки ogg-аудиопотока на IceCast сервер

библиотеки:
libshout-2.2.2
libmp3lame-3.97

В этом примере будет рассмотрена связка из 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
и изменим его содержимое следующим образом:
Код:
<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>password</source-password>
<relay-password>password</relay-password>
<admin-user>admin</admin-user>
<admin-password>password</admin-password>
</authentication>

<hostname>localhost</hostname>
<listen-socket>
<-- Порт на котором ожидать соединений -->
<port>8000</port>
</listen-socket>
<fileserve>1</fileserve>

<paths>
<-- Пути -->
<basedir>/home/icecast</basedir>
<logdir>/home/icecast/logs</logdir>
<webroot>/home/icecast/web</webroot>
<adminroot>/home/icecast/admin</adminroot>
<pidfile>/home/icecast/logs/icecast.pid</pidfile>
<alias source="/" dest="/status.xsl"/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error ->
<logsize>10000</logsize>
</logging>

<security>
<-- Безопасность -->
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</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 и отредактируем:
Код:
<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
<Playlist>
<File>playlist.txt</File>
<Randomize>1</Randomize>
<Type>builtin</Type>
<Module>ices</Module>
</Playlist>

<Execution>
<Background>1</Background>
<Verbose>0</Verbose>
<BaseDirectory>/tmp</BaseDirectory>
</Execution>

<Stream>
<Server>
<Hostname>localhost</Hostname>
<Port>8000</Port>
<-- пароль должен быть такой же как в секции <source-password> конфига icecast -->
<Password>password</Password>
<Protocol>http</Protocol>
</Server>

<Mountpoint>/test</Mountpoint>
<Name>Default stream</Name>
<Genre>Default genre</Genre>
<Description>Default description</Description>
<URL>http://localhost:8000/test</URL>
<Public>0</Public>

<Bitrate>128</Bitrate>
<Reencode>1</Reencode>
<Samplerate>44100</Samplerate>
<Channels>2</Channels>
</Stream>
</ices:Configuration>



Ограничим доступ к /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 'http://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 'http://siava.ru:8000/sample2' -d 'sample2 descr' -n 'blablabla2' -g 'test2' -b 160 -B

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

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

# su icecast -c "ices ..."

Всё представленное выше работает на данном сервере по адресу: http://siava.ru:8000
Оригинал - http://siava.ru/forum/faq37.html


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB