AllInfo
Main: Info Blog Temp Mail


unix 2015-12-30 19-35-01

Настройка icecast сервера. (сетевое радио). (shoutcast sound)


From: Дмитрий Урсегов
Newsgroups: http://www.zlug.pp.ru
Date: Mon, 19 Aug 2004 14:31:37 +0000 (UTC)
Subject: Настройка icecast сервера. (сетевое радио).

Оригинал: http://www.zlug.pp.ru/book/view/152

Введение
--------

Чтоже такое IceCast? Это сервер потокового вещания (в миру - сетевое
радио), поддерживающий mp3 и ogg форматы. Что нам понадобится:
* Собственно сам IceCast (в статье рассмотрена версия 2.0.1)
* Утилита для посылки аудиопотока на IceCast сервер (в статье
рассмотрен Ices 0.3)

Наверняка эти утилиты входят в ваш дистрибутив.


Настройка IceCast
-----------------

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

# groupadd icecast
# useradd -G icecast -d /var/icecast -c "IceCast Server" -m -s /sbin/nologin icecast

(синтаксис утилит groupadd и useradd может несколько отличаться в
вашей системе). Создадим некоторые каталоги:

# mkdir /var/icecast/admin
# mkdir /var/icecast/logs
# chown icecast:icecast /var/icecast/logs
# mkdir /var/icecast/web

Скопируем в /var/icecast/admin следующий файлы из дистрибутива
сервера:

# cp /usr/local/share/examples/icecast/admin/listclients.xsl /var/icecast/admin
# cp /usr/local/share/examples/icecast/admin/listmounts.xsl /var/icecast/admin
# cp /usr/local/share/examples/icecast/admin/moveclients.xsl /var/icecast/admin
# cp /usr/local/share/examples/icecast/admin/response.xsl /var/icecast/admin
# cp /usr/local/share/examples/icecast/admin/stats.xsl /var/icecast/admin

И следующие в директорию /var/icecast/web

# cp /usr/local/share/examples/icecast/web/status.xsl /var/icecast/web
# cp /usr/local/share/examples/icecast/web/status2.xsl /var/icecast/web

Создадим директорию /etc/icecast:

# mkdir /etc/icecast

а в ней файл icecast.xml следующего содержания:

<icecast>
<limits>
<-- Лимиты -->
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
</limits>
<authentication>
<-- Аутентификация - обязательно измените приведённые здесь пароли -->
<source-password>hackme</source-password>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
<hostname>localhost</hostname>
<listen-socket>
<-- Порт на котором ожидать соединений -->
<port>8000</port>
</listen-socket>
<fileserve>0</fileserve>
<paths>
<-- Пути -->
<basedir>/var/icecast</basedir>
<logdir>/logs</logdir>
<webroot>/web</webroot>
<adminroot>/admin</adminroot>
<pidfile>/logs/icecast.pid</pidfile>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error ->
</logging>
<security>
<-- Безопасность -->
<chroot>1</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>

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

# chown root:wheel /etc/icecast/icecast.xml
# chmod 640 /etc/icecast/icecast.xml

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

# icecast -b -c /etc/icecast/icecast.xml

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


Настройка ices
--------------

Создадим файл конфигурации ices - /etc/ices.xml:

<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
<Playlist>
<Randomize>1</Randomize>
<File>playlist.txt</File>
<Type>builtin</Type>
<Module>ices</Module>
</Playlist>
<Execution>
<Background>1</Background>
<Verbose>0</Verbose>
<BaseDirectory>/tmp</BaseDirectory>
</Execution>
<Stream>
<Server>
<Hostname>127.0.0.1</Hostname>
<Port>8000</Port>
<-- См. примечание о паролях в icecast.xml -->
<Password>hackme</Password>
<Protocol>http</Protocol>
</Server>
<Mountpoint>/ices</Mountpoint>
<Dumpfile>ices.dump</Dumpfile>
<Name>Default stream</Name>
<Genre>Default genre</Genre>
<Description>Default description</Description>
<URL>http://localhost/<;/URL>
<Public>0</Public>
<Bitrate>128</Bitrate>
<Reencode>0</Reencode>
<Samplerate>44100</Samplerate>
<Channels>2</Channels>
</Stream>
</ices:Configuration>


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

# chmod 640 /etc/ices.conf

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

# cd /media/music
# ls > playlist.txt

Запустим ices:

# ices -c /etc/ices.conf

Тестируем

$ mplayer http://127.0.0.1:8000/ices/

Если всё сделано правильно - должны услыщать музыку =)

http://www.opennet.ru/base/sys/icecast_setup.txt.html

3.144.6.9 / 2024-12-22_20-48-11 UTC.