Radio Pozitiv http://radiopozitiv.flyboard.ru/ |
|
Инструкция по установке и настройке Icecast и Ices под Linux http://radiopozitiv.flyboard.ru/topic10.html |
Страница 1 из 1 |
Автор: | radiopozitiv [ 27-12, 16:56 ] |
Заголовок сообщения: | Инструкция по установке и настройке Icecast и Ices под Linux |
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 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |