AllInfo
Main: Info Blog Temp Mail


unix 2012-01-21 20-21-05

icecast2 ices : Сейчас я вам расскажу как создать своё интернет радио. Для начала сделаем просто проигрывание треков из папки/папок на сервере.


Icecast http://www.icecast.org
Скачиваем, распаковываем, компилируем.
# wget http://downloads.xiph.org/releases/icecast/icecast-2.3.2.tar.gz
# tar xvfz icecast-2.3.2.tar.gz
# cd icecast-2.3.2
# ./configure
# make
# make install

Создаём группу и пользователя
# groupadd icecast
# useradd icecast -g icecast -m -d /home/icecast
Также устанавливаем пароль для пользователя.
Зачем? Просто у меня есть человек, который будет закачивать музыку
# passwd icecast

Создадим нужные каталоги и скопируем в них файлы
# mkdir /home/icecast/admin
# mkdir /home/icecast/logs
# chown icecast:icecast /home/icecast/logs
# mkdir /home/icecast/web
# cp -r /usr/local/share/icecast/admin /home/icecast/
# cp -r /usr/local/share/icecast/web /home/icecast/
# mkdir /home/icecast/music
# chown icecast:icecast /home/icecast/music

Копируем и правим
# cp /usr/local/share/icecast/doc/icecast.xml.dist /etc/icecast.xml
# mcedit /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>Пароль1</source-password>
<relay-password>Пароль2</relay-password>
<admin-user>АдминЛогин</admin-user>
<admin-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>
<alias source="/" dest="/status.xsl"/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel>
<logsize>10000</logsize>
</logging>

<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
Не забываем поменять данные на свои в теге <authentication>

Ограничим доступ к файлу
# chown root:root /etc/icecast.xml
# chmod 640 /etc/icecast.xml

Запускаем icecast
# icecast -b -c /etc/icecast.xml
Проверяем http://localhost:8000
Открывается? Всё отлично

Ices http://www.icecast.org/ices.php
Скачиваем, распаковываем, компилируем.
# wget http://downloads.us.xiph.org/releases/ices/ices-2.0.1.tar.gz
# tar xvfz ices-2.0.1.tar.gz
# cd ices-2.0.1
# ./configure
# make
# make install

Копируем и правим
# cp /usr/local/share/ices/ices-playlist.xml /etc/ices-playlist.xml
# mcedit /etc/ices-playlist.xml
Делаем конфиг примерного содержания
<?xml version="1.0"?>
<ices>
<background>1</background>
<logpath>/home/icecast/logs</logpath>
<logfile>ices.log</logfile>
<loglevel>4</loglevel>
<consolelog>0</consolelog>



<stream>
<metadata>
<name>Radio Evolution</name>
<genre>other</genre>
<description>Radio Evolution by MrStalker</description>
</metadata>

<input>
<module>playlist</module>
<param name="type">basic</param>
<param name="file">playlist.txt</param>
<param name="random">0</param>
<param name="restart-after-reread">0</param>
<param name="once">0</param>
</input>

<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>Пароль1</password>
<mount>/music.ogg</mount>
<reconnectdelay>2</reconnectdelay>
<reconnectattempts>5</reconnectattempts>.

<maxqueuelength>80</maxqueuelength>

<encode>
<nominal-bitrate>192000</nominal-bitrate>
<samplerate>44100</samplerate>
<channels>2</channels>
</encode>
</instance>

</stream>
</ices>
Не забываем поменять данные на себя в тегах:
1. <metadata> Тут думаю всё понятно (Название, жанр, описание)
2. <input> Тут менять ничего не стоит, кроме <param name="random">0</param> (если значение 1, то песни будут воспроизводиться в случайном порядке)
3. <instance> Тут два параметра <password>Пароль1</password> (ставим пароль такой же, какой указали в конфиге icecast'а вместо Пароль1) <mount>/music.ogg</mount> (как вам больше нравится, меня устраивает music.ogg)
4. <encode> Тут по желанию можете изменить настройки качества звука.

Ограничим доступ к файлу
# chown root:root /etc/ices-playlist.xml
# chmod 640 /etc/ices-playlist.xml

Копируем свою музыку в папку /home/icecast/music/
Но тут может появится проблема... Вы наверняка копируете mp3 файлы, а ices2 понимает только ogg, но мы и с этим справимся.
Для этой ситуации я написал скрипт
# mcedit /usr/local/bin/convr
С таким вот текстом
#!/bin/sh

find *.mp3 -type f | while read file;
do
let num=num+1
list=$(find *.mp3 -type f | awk "NR==$num {print;exit}")
mpg321 "$file" -w raw && oggenc raw -o "$list".ogg
done
rm raw
rm *.mp3
Делаем скрипт исполняемым
# chmod +x /usr/local/bin/convr
Самый момент его использовать
# cd /home/icecast/music
# convr
Ждём пока идёт процесс, или делаем что то полезное в это время.

Готово. Дальше делаем плейлист. Для этого я сделал ещё один скрипт.
# mcedit /usr/local/bin/plr
С текстом
#!/bin/sh
ls -1 > playlist.txt
Делаем исполняемым
# chmod +x /usr/local/bin/plr
Находясь всё ещё в папке с музыкой, выполняем команду
# plr
Плейлист готов, запустим ices (обязательно из папки с музыкой)
# ices /etc/ices-playlist.xml
Проверяем http://localhost:8000
Если всё правильно, на странице должно появится что вроде: (смотрим скрытый текст)
Скрытый текст
Справа есть ссылки на прослушивание.

Впринципе всё, но одного канала нам мало делаем второй.
# cp /etc/ices-playlist.xml /etc/ices-playlist-t.xml
# chown root:root /etc/ices-playlist-t.xml
# chmod 640 /etc/ices-playlist-t.xml
Немного подправим второй конфиг
# mcedit /etc/ices-playlist-t.xml
Как править смотрим выше, главное изменить <mount>/tank1st.ogg</mount>
Создаём папку
# mkdir /home/icecast/music/tank1st
# chown icecast:icecast /home/icecast/music/tank1st
Копируем файлы, по аналогии конвертируем, делаем плейлист
# cd /home/icecast/music/tank1st
# convr
# plr
И запускаем второй процесс ices'а
# ices /etc/ices-playlist-t.xml
Ну вот собственно и всё, спасибо за внимание
http://opennix.tula.su/forum/index.php?/topic/794-%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC-%D1%81%D0%B2%D0%BE%D1%91-%D1%80%D0%B0%D0%B4%D0%B8%D0%BE-icecast-ices/

3.144.253.161 / 2024-04-28_13-24-11 UTC.