Наверх

Icecast сервер на базе Ubuntu

Установка Icecast2

Проверено на Ubuntu 10.04, Mint 12, Debian 6

Выполнять установку лучше под root, так как использование sudo может дать ошибки в сборке некоторых пакетов.

Пишем в консоли суперпользователя пишем:

apt-get update

после обновления списков репозиториев установим сам icecast:

apt-get install icecast2


Автоматически будет созданы учётная запись, группа, файл конфигурации и прочее.

Чтобы icecast запустился, необходимо в открыть /etc/default/icecast2 установить значение:

gedit /etc/default/icecast2

ENABLE=true

Отредактируем конфиги самого icecast:

gedit /etc/icecast2/icecast.xml
<icecast>
    <limits>
        <clients>100</clients>
        <sources>10</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> yourdomain.com</hostname>
 
 
   <listen-socket>
        <port>8000</port>
       <bind-address> 127.0.0.1</bind-address>
    </listen-socket>
   <listen-socket>
        <port>8000</port>
       <bind-address> 127.0.0.1</bind-address>
         <shoutcast-mount> /stream.mp3</shoutcast-mount>
	<charset>UTF8</charset>
 
    <fileserve>1</fileserve>
    <paths>
        <basedir>/usr/share/icecast2</basedir>
        <logdir>/var/log/icecast2</logdir>
        <webroot>/usr/share/icecast2/web</webroot>
        <adminroot>/usr/share/icecast2/admin</adminroot>
        <alias source="/" dest="/status.xsl"/>
    </paths>
 
    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
 
      	<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
      	<logsize>10000</logsize> <!-- Max size of a logfile -->
    </logging>
 
    <security>
        <chroot>0</chroot>
    </security>
</icecast>

Запустим Icecast:

/etc/init.d/icecast2 start

Установка ices0

К сожалению, ices0 отсутствует в репозитории, поэтому собирать его придется вручную.

apt-get install build-essential

Также, нам потребуются библиотеки libshout3 и libxml2:

apt-get install libshout3-dev libxml2-dev

Для поддержки mp3 файлов потребуются библиотеки libmp3lame0. В репозитории не самая последняя версия (либо, в зависимости от версии ОС, установка вообще не идет), поэтому лучше поставить их из пакета самостоятельно:

для 32-битных систем:

wget http://debian-multimedia.org/pool/main/l/lame/libmp3lame0_3.98.4-0.0_i386.deb
wget http://debian-multimedia.org/pool/main/l/lame/libmp3lame-dev_3.98.4-0.0_i386.deb
dpkg -i libmp3lame0_3.98.4-0.0_i386.deb
dpkg -i libmp3lame-dev_3.98.4-0.0_i386.deb

для 64-битных:

wget http://debian-multimedia.org/pool/main/l/lame/libmp3lame0_3.98.4-0.0_amd64.deb
wget http://debian-multimedia.org/pool/main/l/lame/libmp3lame-dev_3.98.4-0.0_amd64.deb
dpkg -i libmp3lame0_3.98.4-0.0_amd64.deb
dpkg -i libmp3lame-dev_3.98.4-0.0_amd64.deb

Всё готово для сборки ices0.4

wget http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz
tar -xf ices-0.4.tar.gz

Переходим в директорию с исходниками ices0, выполняем конфигурирование и установку:

cd ices-0.4
./configure —with-lame
make & make install

Если всё прошло без ошибок, ices0 установлен.

Конфигурирование Ices

gedit /usr/local/etc/ices.conf
<!--?xml version="1.0"?-->
 
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
  <Playlist>
    <File>/home/user/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>192.168.1.7</Hostname>
      <Port>8000</Port>
      <Password>icecastpassword</Password>
      <Protocol>http</Protocol>
    </Server>
 
   <Mountpoint>/stream.mp3</Mountpoint>
    <Name>Rock Radio</Name>
    <Genre>Rock </Genre>
    <Description>Rock Radio</Description>
    <URL>  http://127.0.0.1/</URL>
    <Public>0</Public>
    <Bitrate>160</Bitrate>
    <Reencode>1</Reencode>
    <Channels>2</Channels>
  </Stream>
</ices:Configuration>

Составим плейлист для ices 0.4:

cd /home/radio/
ls > playlist.txt

Теперь запускаем Ices 0.4:

cd /home/radio/
ices

либо можно ices с потоком

/usr/local/bin/ices -c '/usr/local/etc/ices.conf' -D '/tmp' -F '/home/user/playlist.txt' -m 'sream.mp3' -u 'http://yourdomain.com:8000/rock.mp3' -d 'Rock Radio Freya' -n 'Rock-Radio' -g 'Rock' -B;

Зайдя по ссылке http://yourdomain.com:8000/stream.mp3, вы сможете услышать ваше радио.

Полезные советы:

Как включить перемешивание в ices?
В конфиге ices установите ключ

 <Randomize>1</Randomize>

Как сделать, чтоб ices кодировал битрейт?
В конфиге ices установите ключ

 <Reencode>1</Reencode>

Как выводить корректные названия кириллицей?
Проще всего - перекодировать всю музыкальную коллекцию через EasyTag

Как корректно добавить Ices в автозагрузку?
1. Создать в /etc/init.d/ скрипт запуска/остановки службы

#!/bin/sh
case "$1" in
start)
 
sleep 10 
 
/usr/local/bin/ices -c '/usr/local/etc/ices.conf' -D '/tmp' -F '/home/user/playlist.txt' -m 'sream.mp3' -u 'http://yourdomain.com:8000/rock.mp3' -d 'Rock Radio Freya' -n 'Rock-Radio' -g 'Rock' -B;
        ;;
stop)
       killall -9 ices
        ;;
*)
        echo "Usage: `basename $0` {start|stop}" >&2
        exit 64
        ;;
esac
 
:

2. Задать ему права на исполнение

sudo chmod +x /etc/init.d/radio

3. Добавить в автозапуск rc.d

sudo update-rc.d myscript start 99 2 3 4 5 . stop 01 0 1 6 .

Всего отзывов: 2

  1. Еще один способ составить плейлист, если у вас вложенные папки:

    find /volume1/music -name ‘*.mp3’ -print >playlist.txt

  2. Алики

    За рут надо бить ремнём.
    в крайнем случае — su
    Но лучше — sudo -i

    А за make & make install….. поубивав бы.
    http://habrahabr.ru/post/130868/ например… И там есть как с этим бороться.

    Если вкратце — то в системе после сборки будет куча мусора, которую не отследить. Но если перед установкой убрать всё в пакет, то приложение, а так же все библиотеки которые оно тащит, и все файлы им созданные, будут вычищаться при удалении или обновлении (если это необходимо).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *