Оцените
Icecast 2.3.2 + SAM Streaming Encoders 3.0
Icecast — свободное ПО для организации потокового цифрового аудиовещания. Его поддержкой занимается Xiph.org Foundation.
Icecast является серверной программой, которая может осуществлять раздачу цифровых потоков различных форматов, таких как Ogg Vorbis, MP3, Theora, AAC, AACplus и NSV.
Template not found: /templates/softlenta2/splitnewsnavigation.tpl
Icecast является серверной программой, которая может осуществлять раздачу цифровых потоков различных форматов, таких как Ogg Vorbis, MP3, Theora, AAC, AACplus и NSV.
Введение
--------
Чтоже такое 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/
Если всё сделано правильно - должны услыщать музыку =)