# 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>
h
ttp://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