|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> icecast2
Inernet Radio в локальную сеть
Автор: schizoid.
Итак опишу что я хотел сделать. Как-то был у своего брата, весь вечер пока мы общались играла клевая музыка, в основном рок. Я поздравил его за удачный репертуар музыки, но он сказал, что это радио, интернет-радио. И вот тут я загорелся. Ну в начале несколько дней просто слушал прописав его дома в винампе. НО! мне захотелось поделиться им в своей локальной сети! Как раз на форуме я наткнулся на интересующую меня тему, тут человек спрашивал как организовать такое (вещание интернет радио в локальную сеть), ему посоветовали 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://192.168.0.100:8000 или 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://forum.lissyara.su/viewtopic.php?t=17599.
размещено: 2007-11-03,
последнее обновление: 2008-06-15,
автор: schizoid
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
|
Комментарии пользователей [43 шт.]