Документация по ОС FreeBSD Суббота, 04.05.2024, 23:57
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Inernet Radio в локальную сеть
Итак опишу что я хотел сделать. Как-то был у своего брата, весь вечер пока мы общались играла клевая музыка, в основном рок. Я поздравил его за удачный репертуар музыки, но он сказал, что это радио, интернет-радио. И вот тут я загорелся. Ну в начале несколько дней просто слушал прописав его дома в винампе. НО! мне захотелось поделиться им в своей локальной сети! Как раз на форуме я наткнулся на интересующую меня тему, тут человек спрашивал как организовать такое (вещание интернет радио в локальную сеть), ему посоветовали shoutcast.  Ну я не долго думая тоже воспользовался советом. Установив его и настроив я так и не смог перенаправить интересующее меня радио в локаль. Для эксперимента, я тупо ввел в яндексе поиск любого интернет радио и нашел popwave, его мне удалось пробросить в сеть. Пока я на этом остановился, но все же сердце терзалось. Да и еще одно НО мне не очень понравилось в использовании данной пограммки, так это то, что не зависимо от того есть ли клиент слушающий радио или его нет, он все равно забирал под себя определенную полосу.
Порывшись в инете я наткнулся на icecast.
Итак начнем.
# whereis icecast
icecast: /usr/ports/audio/icecast

Но когда я пошел по указанному пути, то обнаружил что есть еще и icecast2. Честно, я не знаю какая между ними разница, но я выбрал 2-й.
cd /usr/ports/audio/icecast2
make install clean

После установки видим месагу нам:
To start icecast at system boot, copy
/usr/local/etc/icecast.xml.sample to /usr/local/etc/icecast.xml, 
customize
to your environment as desired and add:

icecast_enable="YES"

to /etc/rc.conf. See the icecast -h command for optional additional
flags. To specify an alternative config file for example add:

icecast_flags="-c /path/to/your/configuration.xml"

**********************************************************************
** Make sure the <changeowner> section in your configuration file **
** is NOT commented out. Icecast will refuse to run as root. **
** **
** Also make sure that the user you choose is able to write to your **
** configured log directory, otherwise icecast will refuse to run. **
**********************************************************************

Что собственно и делаем.
дописываем в /etc/rc.conf строку icecast_enable="YES"
А также копируем дефолтный конфиг в новый.
#cd /usr/local/etc/
# cp icecast.xml.sample icecast_pop.xml
# cp icecast.xml.sample icecast_rock.xml

Далее в  icecast_pop.xml правим такие строки:
 <authentication>
 <!-- Sources log in with username 'source' -->
 <source-password>hackme</source-password>
 <!-- Relays log in username 'relay' -->
 <relay-password>hackme</relay-password>

 <!-- Admin logs in with the username given below -->
 <admin-user>admin</admin-user>
 <admin-password>hackme</admin-password>
 </authentication>

Заменяем на:
 <authentication>
 <!-- Sources log in with username 'source' -->
 <source-password>[color=orange]ПАРОЛЬ[/color]</source-password>
 <!-- Relays log in username 'relay' -->
 <relay-password>[color=orange]ПАРОЛЬ[/color]</relay-password>

 <!-- Admin logs in with the username given below -->
 <admin-user>admin</admin-user>
 <admin-password>[color=orange]ПАРОЛЬ[/color]</admin-password>
 </authentication>

Строки:
 <!-- You may have multiple <listener> elements -->
 <listen-socket>
 <port>8000</port>
 <!-- <bind-address>127.0.0.1</bind-address> -->
 </listen-socket>

Заменяем на:
 <!-- You may have multiple <listener> elements -->
 <listen-socket>
 <port>8000</port>
 <bind-address>192.168.0.100</bind-address>
 </listen-socket>

Где 192.168.0.100 - ИП сервера в локальной сети, 8000 - это порт, по которому наш сервер будет вещать музыку.

Далее, строки:
 <!--
 <relay>
 <server>127.0.0.1</server>
 <port>8001</port>
 <mount>/example.ogg</mount>
 <local-mount>/different.ogg</local-mount>
 <on-demand>0</on-demand>

 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>
 -->

Меняем на
 <relay>
 <server>81.88.113.18</server>
 <port>1072</port>
 <mount>/</mount>
 <local-mount>/radio_pop.mp3</local-mount>
 <on-demand>1</on-demand>

 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>

(т.е. не только изменяем, а и cнимаем коментарий с секции)
Где 81.88.113.18 - ИП-адрес сервера с которго берем радио, 1072 - порт по которому он транслирует это радио. / - точка монтирования. /radio_pop.mp3- локальная точка монтировния (ее будем указывать для прослушивания радио в локальной сети).
Строка <on-demand>1</on-demand> - говорит, что icecast2 будет работать в качестве демона, так же это дает значительное преимущество перед shoutcast-ом, он не занимает полосу, когда радио никто не слушает.
Далее в конфиге я ничего не менял. Для моей задачи этого в полне хватит.
Итак проверяем.
#icecast -b -c /usr/local/etc/icecast_pop.xml

Далее в винампе прописываю url
http://192.168.0.100:8000/radio_pop.mp3

И слышу радио :)
Аналогично я проделал и для второго скопированного файлика (icecast_rock.xml) изменив при этом порт, по которому мой сервер отдает радио, ИП интернет радио и локальную точку монтирования.
 <listen-socket>
 <port>8001</port>
 <bind-address>192.168.0.100</bind-address>
 </listen-socket>

...
 <relay>
 <server>209.51.161.54</server>
 <port>8072</port>
 <mount>/</mount>
 <local-mount>/radio_rock.mp3</local-mount>
 <on-demand>1</on-demand>

 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>

Далее запустил и второе радио:
#icecast -b -c /usr/local/etc/icecast_rock.xml

Также добавил урл в винамп (http://192.168.0.100:8001/radio_rock.mp3) и услышал уже свою любимую волну :)

Потом добавил еще 2 строки в файл /etc/rc.conf
icecast_flags="-b -c /usr/local/etc/icecast_rock.xml"
icecast_flags="-b -c /usr/local/etc/icecast_pop.xml"

И наслаждаюсь вместе со своей сетью слушая интернет-радио :)

З.ы.: Добавив последние две строки в /erc/rc.conf я сервак еще не бутял, по-этому за корректность поднятия icecast-a после ребута не ручаюсь. Проверю - отпишусь.
З.ы.2: Помните мы задавали ПАРОЛЬ? так вот если зайти в браузере по адресу http://www.lissyara.su/scripts/redirect_link.php?link=http://192.168.0.100:8000 или http://www.lissyara.su/scripts/redirect_link.php?link=http://192.168.0.100:8001, то можно получить некоторую информацию о сервисе icecast2 работающем на вашем сервере.
Вот собственно и все. Подробнее о icecast2 вы можете найти в просторах Интернета, мне же хватило и описанных выше действий.


З.ы.3: Исходя из коментариев к статье, приведу немного видоизмененный конфиг. Тут уже все в одном файле.
Привожу лишь ту часть, которая отвечает на релей радиостанций, все остальное остается прежним.



 <relay>
 <server>81.88.113.18</server>
 <port>1072</port>
 <mount>/</mount>
 <local-mount>/radio_popwave.mp3</local-mount>
 <on-demand>1</on-demand>
 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>

 <relay>
 <server>205.188.215.226</server>
 <port>8000</port>
 <mount>/</mount>
 <local-mount>/radio_paradise.mp3</local-mount>
 <on-demand>1</on-demand>
 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>

 <relay>
 <server>209.51.161.54</server>
 <port>8072</port>
 <mount>/</mount>
 <local-mount>/radio_1.fm.mp3</local-mount>
 <on-demand>1</on-demand>
 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>

<!--В том случае, когда радиостанция источник имеет вид ссылки: 
http://mp3.nashe.ru:80/nashe-128 -->
 <relay>
 <server>mp3.nashe.ru</server>
 <port>80</port>
 <mount>/nashe-128</mount>
 <local-mount>/radio_nashe.mp3</local-mount>
 <on-demand>1</on-demand>
 <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
 </relay>

Далее в /etc/rc.conf остается только:
icecast_enable="YES"
icecast_flags="-b -c /usr/local/etc/icecast.xml"

Для этого случая плей-лист выглядит так:
http://192.168.0.100:8000/radio_popwave.mp3
http://192.168.0.100:8000/radio_paradise.mp3
http://192.168.0.100:8000/radio_1.fm.mp3
http://192.168.0.100:8000/radio_nashe.mp3



Источник: http://www.lissyara.su/?id=1544
Категория: Net | Добавил: oleg (16.06.2008) | Автор: schizoid
Просмотров: 1048 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024