Итак опишу что я хотел сделать. Как-то был у своего брата, весь вечер пока мы общались играла клевая музыка, в основном рок. Я поздравил его за удачный репертуар музыки, но он сказал, что это радио, интернет-радио. И вот тут я загорелся. Ну в начале несколько дней просто слушал прописав его дома в винампе. НО! мне захотелось поделиться им в своей локальной сети! Как раз на форуме я наткнулся на интересующую меня тему, тут человек спрашивал как организовать такое (вещание интернет радио в локальную сеть), ему посоветовали shoutcast. Ну я не долго думая тоже воспользовался советом. Установив его и настроив я так и не смог перенаправить интересующее меня радио в локаль. Для эксперимента, я тупо ввел в яндексе поиск любого интернет радио и нашел popwave, его мне удалось пробросить в сеть. Пока я на этом остановился, но все же сердце терзалось. Да и еще одно НО мне не очень понравилось в использовании данной пограммки, так это то, что не зависимо от того есть ли клиент слушающий радио или его нет, он все равно забирал под себя определенную полосу. Порывшись в инете я наткнулся на 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" А также копируем дефолтный конфиг в новый.
<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 - это порт, по которому наш сервер будет вещать музыку.
(т.е. не только изменяем, а и 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) изменив при этом порт, по которому мой сервер отдает радио, ИП интернет радио и локальную точку монтирования.
З.ы.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>
<!--В том случае, когда радиостанция источник имеет вид ссылки: