PDA-версия форума  
Список форумов Siava.Ru Siava.Ru
Форум города Сертолово
 
ГлавнаяГлавная Правила форумаПравила ПоискПоиск ПользователиПользователи РегистрацияРегистрация ДополнительноДополнительно
ФотоальбомФотоальбом МузыкаМузыка Войти и проверить личные сообщенияВойти и проверить личные сообщения ВходВход


Установка и настройка IceCast сервера в Linux (сетевое радио)

Навигация
Форум (4)
Сеть (19)
NOD32 | ESS (5)
Работа со звуком (4)
Работа с видео (6)
Система (3)
 
 
Автор Статья
Siava
Злобный адмЫн
<b>Злобный адмЫн</b>


Зарегистрирован: 07.12.2003
Статьи (FAQ): 16
Комментарии: 21

 Добавлено: Вс 11 Ноя, 2007 01:47

IceCast

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

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

приложения:
  •  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 требуется наличие в системе ещё нескольких библиотек:

С 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
Спасибо за внимание, надеюсь, статья кому-нибудь будет полезна. © Siava.Ru Улыбочка
Оценка: 0,00/5,00 [0]


Автор Комментарии
Siava
Злобный адмЫн
<b>Злобный адмЫн</b>


Зарегистрирован: 07.12.2003
Статьи (FAQ): 16
Комментарии: 21
 Добавлено: Пн 12 Ноя, 2007 16:20

В процессе использования был замечен глюк с буферизацией некоторых треков. Установив в настройках ices параметр:
Код:
<Reencode>1</Reencode>

проблема устранилась.
Siava
Злобный адмЫн
<b>Злобный адмЫн</b>


Зарегистрирован: 07.12.2003
Статьи (FAQ): 16
Комментарии: 21
 Добавлено: Ср 14 Ноя, 2007 00:39

Использование Reencoding'а добавило ~7% нагрузки на двухядерный Athlon X2 4800+ на один процесс ices.
В случае, если битрейт треков совпадает с reencoding-битрейтом загрузка процессора не более 0.2%.

Вывод: хотите разгрузить систему, если она слабая, один раз конвертните свои треки в нужный и постоянный битрейт, с которым собираетесь проигрывать в вашем онлайн-радио Улыбочка
Strider
медиамагнат
медиамагнат


Зарегистрирован: 20.02.2007
Статьи (FAQ): 1
Комментарии: 4
Город: Сертолово
 Добавлено: Чт 15 Ноя, 2007 11:13

Коммент от меня Улыбочка

Чтобы на радиоканале была заставка, как у меня на канале /trance, нужно добавить в конфиг айскаста:

Код:
 
   <mount>
     <mount-name>/trance</mount-name>
     <username>source</username>
     <password>*****</password>
     <intro>/путь/к/файлу/intro.mp3</intro>
    </mount>


Для ретрансляции какой-либо радиостанции на своем сервере:

Код:

   <relay>
        <server>80.93.49.154</server>
        <port>8081</port>
        <mount>/</mount>
        <local-mount>/belive</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
        <on-demand>1</on-demand>
    </relay>
Siava
Злобный адмЫн
<b>Злобный адмЫн</b>


Зарегистрирован: 07.12.2003
Статьи (FAQ): 16
Комментарии: 21
 Добавлено: Вс 16 Дек, 2007 02:48

XaNDeR_KeYG, так всё и так расписано. При наличии опыта работы с серверами Linux/FreeBSD проблем быть не должно.
При запуске IceCast открывается порт 8000, через который и попадаешь в веб-интерфейс. В каталог с сайтом ничего копировать не надо.
MiCh
друх форума
друх форума


Зарегистрирован: 25.12.2003
Статьи (FAQ): 0
Комментарии: 2
 Добавлено: Вт 04 Мар, 2008 23:11

поставил ices0... и все бы хорошо... кроме одного...
он почему-то очень долго коннектиться к айскасту (он на другой машине) и постоянно запаздывает с обновлением метаданных (артист, название трека)... Плачу..
Siava
Злобный адмЫн
<b>Злобный адмЫн</b>


Зарегистрирован: 07.12.2003
Статьи (FAQ): 16
Комментарии: 21
 Добавлено: Вс 09 Мар, 2008 14:28

Между двумя машинками не пробовал.. Rolling Eyes надо бы проверить.
Siava
Злобный адмЫн
<b>Злобный адмЫн</b>


Зарегистрирован: 07.12.2003
Статьи (FAQ): 16
Комментарии: 21
 Добавлено: Вт 02 Сен, 2008 23:51

Хм.. не сталкивался с таким вроде Rolling Eyes
Strider
медиамагнат
медиамагнат


Зарегистрирован: 20.02.2007
Статьи (FAQ): 1
Комментарии: 4
Город: Сертолово
 Добавлено: Чт 02 Окт, 2008 22:08

shunya

Код:
<on-demand>1</on-demand>

этот параметр отвечает за загрузку метаданных всегда или "по-требованию", т.е. если ты хочешь чтобы название трека, исполнитель и в принципе сам моунг-поит отображались всегда, поставь
Код:
<on-demand>0</on-demand>
 

Страница 1 из 1
Часовой пояс: GMT + 4

Перейти:  
Вы не можете отправлять статьи в этот раздел
Вы не можете изменять Ваши статьи в этом разделе
Вы не можете удалить Ваши статьи в этом разделе
Вы не можете оценивать статьи в этом разделе
Вы не можете одобрять статьи в этом разделе

Вы не можете отправлять комментарии в этот раздел
Вы не можете редактировать Ваши комментарии в этом разделе
Вы не можете удалять Ваши комментарии в этом разделе
Вы не можете оценивать комментарии в этом разделе

Очистить куки установленные форумом


Сайт |  Главная |  Список форумов |  Фотоальбом |  Музыка |  Файлы |  Статьи (FAQ)

Powered by рhрBВ © 2001, 2009 рhрBВ Grоuр
© Siava.Ru - Культурно-развлекательный портал города Сертолово
Копирование любых материалов с сайта без указания ссылки на источник запрещено!
 
 
Сертоловский ТОП сайтов
Погода сегодняПогода на неделюПогода на завтра
web form