Loading

Вещаем радио в локальную сеть

16.11.2010 - 14:30

Однажды вечером, просматривая логи squid, увидел, что пользователи присели на стрим радио. :HAPPY: Закрыв нужные порты, лег спать. Утром услышал много комплиментов в свой адрес, от юзеров. Пришлось пойти на компромисс и поднять внутренний радио сервер, который брал бы поток с интернет-радиостанций и передавал в сеть (ретранслятор). Порт который нам нужен называется - icecast. И так поехали химичить..

[root@router /]# cd /usr/ports/audio/icecast2/
[root@router /usr/ports/audio/icecast2]# make install clean

После установки нас просят добавить его в /etc/rc.conf:
[root@router /etc]# cat rc.conf | grep ice
icecast_enable="YES"
# Указываем расположение конфиг. файла айскаста.
icecast_flags="-b -c /usr/local/etc/icecast.xml"

Далее идем править конфиг, который расположен в /usr/local/etc, у меня он имеет такой вид:
[root@router /]# cat /usr/local/etc/icecast.xml
<icecast>
    <limits>
        <clients>50</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>123456789</source-password>
        <relay-password>12345678</relay-password>
# Пара(логин/пасворд) для входа в web-интерфейс айскаста, который доступен по адресу http://<IP-сервера>:8000/.
        <admin-user>admin</admin-user>
        <admin-password>2010ws</admin-password>
    </authentication>

    <hostname>localhost</hostname>
# На каком порту будет висеть.
    <listen-socket>
        <port>8000</port>
# Указываем ip-адрес сервера, со стороны локальной сети.
        <bind-address>192.168.1.1</bind-address>
    </listen-socket>
# Тут начинаются сами релеи на другие интернет-радиостанции.
# Trance радиостанциа - Afterhours:
    <relay>
# ip-адрес сервера
        <server>78.137.1.209</server>
# Порт
        <port>8000</port>
# Точка монтированя.
        <mount>/afterhours</mount>
# Точка монтированиня у нас на локальном сервере.
        <local-mount>/afterhours.mp3</local-mount>
# Использует интернет только тогда, когда идет вещание.
        <on-demand>1</on-demand>
# Говорим передавать нам названия треков, которые проигрываются.
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

#Хит-ФМ радиостанция:
    <relay>
        <server>195.95.206.12</server>
        <port>8000</port>
        <mount>/HitFM</mount>
        <local-mount>/hitfm.mp3</local-mount>
        <on-demand>1</on-demand>
    <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
   
    <fileserve>1</fileserve>

    <paths>
        <basedir>/usr/local/share/icecast</basedir>
        <logdir>/var/log/icecast</logdir>
        <webroot>/usr/local/share/icecast/web</webroot>
        <adminroot>/usr/local/share/icecast/admin</adminroot>
         <pidfile>/var/run/icecast.pid</pidfile>
        <alias source="/" dest="/status.xsl"/>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <loglevel>2</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
        <logsize>10000</logsize> <!-- Max size of a logfile -->
    </logging>


    <security>
        <chroot>0</chroot>
        <changeowner>
        <user>nobody</user>
        <group>nobody</group>
        </changeowner>
    </security>
</icecast>

Стартуем демон:

[root@router /]#cd /usr/local/etc/rc.d
[root@router /usr/local/etc/rc.d]# ./icecast2 start

Проверяем:
[root@router /usr/local/etc/rc.d]# ./icecast2 status
icecast is running as pid 81438.
[root@router /usr/local/etc/rc.d]# sockstat | grep 8000
nobody   icecast    81438 0  tcp4   192.168.1.1:8000      192.168.1.253:3277
nobody   icecast    81438 1  tcp4   82.207.87.36:63934    195.95.206.12:8000
nobody   icecast    81438 2  tcp4   192.168.1.1:8000      192.168.1.248:1243
nobody   icecast    81438 4  tcp4   192.168.1.1:8000      *:*
nobody   icecast    81438 8  tcp4   192.168.1.1:8000      192.168.1.209:1220
[root@router /usr/local/etc/rc.d]#

В результате у нас будет работать 2 радиостанции, которые можно услышать по адресам:

http://192.168.1.1:8000/afterhours.mp3
http://192.168.1.1:8000/hitfm.mp3

Статистику использования нашего сервера можно увидеть в браузере:

http://192.168.1.1:8000/

69.png

Ваша оценка: Нет Средняя: 5 (3 голосов)