K
kenny
Гость
Давненько что-то не было постов. Оговорюсь сразу статья ниже не моя, а моего коллеги, я ему помогал в написании и настройки, пару лет назад.
Сейчас я вам расскажу как создать своё интернет радио. Для начала сделаем просто проигрывание треков из папки/папок на сервере.
Icecast
Скачиваем, распаковываем, компилируем.
Создаём группу и пользователя
Также устанавливаем пароль для пользователя.
Зачем? Просто у меня есть человек, который будет закачивать музыку
Создадим нужные каталоги и скопируем в них файлы
Копируем и правим
Делаем конфиг примерного содержания:
Не забываем поменять данные на свои в теге <authentication>
Ограничим доступ к файлу
Запускаем icecast
Проверяем
Открывается? Всё отлично
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> Тут по желанию можете изменить настройки качества звука.
Ограничим доступ к файлу
Копируем свою музыку в папку /home/icecast/music/
Но тут может появится проблема... Вы наверняка копируете mp3 файлы, а ices2 понимает только ogg, но мы и с этим справимся.
Для этой ситуации я написал скрипт
С таким вот текстом
Делаем скрипт исполняемым
Самый момент его использовать
Ждём пока идёт процесс, или делаем что то полезное в это время.
Готово. Дальше делаем плейлист. Для этого я сделал ещё один скрипт.
С текстом
Делаем исполняемым
Находясь всё ещё в папке с музыкой, выполняем команду
Плейлист готов, запустим ices (обязательно из папки с музыкой)
Проверяем
Если всё правильно, на странице должно появится что вроде: (смотрим скрытый текст)
Справа есть ссылки на прослушивание.
Впринципе всё, но одного канала нам мало
делаем второй.
Немного подправим второй конфиг
Как править смотрим выше, главное изменить <mount>/tank1st.ogg</mount>
Создаём папку
Копируем файлы, по аналогии конвертируем, делаем плейлист
И запускаем второй процесс ices'а
Ну вот собственно и всё, спасибо за внимание
Далее приведем пример ретранслирования.
Чтобы ретранслировать другое радио достаточно в конфиг icecast'а включить следующее:
Тут думаю всё понятно, адрес внешнего сервера, порт, внешняя и локальная точки монтирования.
Сейчас я вам расскажу как создать своё интернет радио. Для начала сделаем просто проигрывание треков из папки/папок на сервере.
Icecast
Скачиваем, распаковываем, компилируем.
Код:
# 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>
Ограничим доступ к файлу
Код:
# chown root:root /etc/icecast.xml
# chmod 640 /etc/icecast.xml
Запускаем icecast
Код:
# icecast -b -c /etc/icecast.xml
Открывается? Всё отлично
Ices
Скачиваем, распаковываем, компилируем.
Код:
# 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 /etc/ices-playlist.xml
Если всё правильно, на странице должно появится что вроде: (смотрим скрытый текст)
Справа есть ссылки на прослушивание.
Впринципе всё, но одного канала нам мало
Код:
# 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
Создаём папку
Код:
# mkdir /home/icecast/music/tank1st
# chown icecast:icecast /home/icecast/music/tank1st
Код:
# cd /home/icecast/music/tank1st
# convr
# plr
Код:
# ices /etc/ices-playlist-t.xml
Далее приведем пример ретранслирования.
Чтобы ретранслировать другое радио достаточно в конфиг icecast'а включить следующее:
Код:
<relay>
<server>213.251.194.163</server>
<port>8000</port>
<mount>/</mount>
<local-mount>/animeradio</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>