Установка 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 . |
Еще один способ составить плейлист, если у вас вложенные папки:
find /volume1/music -name ‘*.mp3’ -print >playlist.txt
За рут надо бить ремнём.
в крайнем случае — su
Но лучше — sudo -i
А за make & make install….. поубивав бы.
http://habrahabr.ru/post/130868/ например… И там есть как с этим бороться.
Если вкратце — то в системе после сборки будет куча мусора, которую не отследить. Но если перед установкой убрать всё в пакет, то приложение, а так же все библиотеки которые оно тащит, и все файлы им созданные, будут вычищаться при удалении или обновлении (если это необходимо).