icecast

Icecast — свободное ПО для организации потокового цифрового аудио и видеовещания. Icecast является серверной программой, которая может осуществлять раздачу цифровых потоков различных форматов, таких как Ogg Vorbis, Opus, MP3, Theora, AAC, AAC Plus и NSV. Передача данных осуществляется по стандартному протоколу HTTP, либо по протоколу SHOUTcast. Icecast поддерживает теги в UTF-8, что позволяет организовывать трансляцию с русской аннотацией.

Установка с репозитория epel:

# yum install epel-release
# yum install icecast

Настройка

vi /etc/icecast.xml

<icecast> <!-- location and admin are two arbitrary strings that are e.g. visible
          on the server info page of the icecast web interface
          (server_version.xsl). -->
 <location>RING</location>
 <admin>icemaster@domen.com</admin>
 <limits>
     <clients>1000</clients>
     <sources>200</sources>
     <threadpool>500</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>hackme</source-password>
     <relay-password>hackme</relay-password>
     <admin-user>admin</admin-user>
     <admin-password>hackme</admin-password>
     </authentication>
     <hostname>host.dome.com</hostname>
 <listen-socket>
     <port>8000</port>
     <bind-address>192.168.113.1</bind-address>
 </listen-socket>
<!-- Nashe Radio -->
 <relay>
     <server>185.128.234.102</server>
     <port>8000</port>
     <mount>/nashe</mount>
     <local-mount>/nashe</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- hitfm.ua 96.4 -->
 <relay>
     <server>195.95.206.17</server>
     <port>8000</port>
     <mount>/HitFM</mount>
     <local-mount>/HitFM</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- jamfm.ua 95.6 -->
 <relay>
     <server>185.128.234.102</server>
     <port>8000</port>
     <mount>/jamfm</mount>
     <local-mount>/jamfm</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- Shanson 101.9 Kiev -->
 <relay>
     <server>media2.brg.ua</server>
     <port>8000</port>
     <mount>/shanson_h</mount>
     <local-mount>/shanson</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- KissFM -->
 <relay>
     <server>195.95.206.14</server>
     <port>8000</port>
     <mount>/KissFM</mount>
     <local-mount>/kissfm</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- EuropaPlus -->
 <relay>
     <server>185.128.234.102</server>
     <port>8000</port>
     <mount>/europaplus</mount>
     <local-mount>/europaplus</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- Radiopyatnica -->
 <relay>
     <server>185.128.234.101</server>
     <port>80</port>
     <mount>/radiopyatnica</mount>
     <local-mount>/radiopyatnica</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- AvtoRadio -->
 <relay>
     <server>cast.radiogroup.com.ua</server>
     <port>8000</port>
     <mount>/avtoradio</mount>
     <local-mount>/avtoradio</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- Radio ROKS -->
 <relay>
     <server>online-radioroks.tavrmedia.ua</server>
     <port>8000</port>
     <mount>/RadioROKS</mount>
     <local-mount>/radioROKS</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- Radio Melodia -->
 <relay>
     <server>online-radiomelodia.tavrmedia.ua</server>
     <port>80</port>
     <mount>/RadioMelodia</mount>
     <local-mount>/radioMelodia</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- NRJ RU -->
 <relay>
     <server>ic3.101.ru</server>
     <port>8000</port>
     <mount>/s20</mount>
     <local-mount>/NRJ</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
<!-- RETRO RU -->
 <relay>
     <server>retroserver.streamr.ru</server>
     <port>8043</port>
     <mount>/retro256.mp3</mount>
     <local-mount>/retro</local-mount>
     <on-demand>1</on-demand>
     <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
 </relay>
 <fileserve>1</fileserve>
 <paths>
    <basedir>/usr/share/icecast</basedir>
    <logdir>/var/log/icecast</logdir>
    <webroot>/usr/share/icecast/web</webroot>
    <adminroot>/usr/share/icecast/admin</adminroot>
    <alias source="/" dest="/status.xsl"/>
 </paths>
 <logging>
    <accesslog>access.log</accesslog>
    <errorlog>error.log</errorlog>
    <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    <logsize>100000</logsize>
 </logging>
 <security>
    <chroot>0</chroot>
    <changeowner>
         <user>icecast</user>
         <group>icecast</group>
    </changeowner>
 </security>
</icecast>

Добавляем правила в iptables

....
# ICECAST
iptables -I INPUT 1 -p tcp --dport 8000:8003 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 9500 -j ACCEPT

#----------
# Logs
#----------
#iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 4
....

Стартуем сервис:

# systemctl start icecast
# systemctl status icecast
# systemctl enable icecast

Проверяем набирая в браузере:

http://192.168.113.1:8000/

Слушаем например HitFM так:

http://192.168.113.1:8000/HitFM

Для удобства создаем на ПК с которого будем слушать радио файлик с расширением *.m3u с таким содержимым:

#EXTM3U
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/HitFM
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/jamfm
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/nashe
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/shanson
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/kissfm
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/europaplus
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/nrj
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/avtoradio
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/radioROKS
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/radioMelodia
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/teuphoria
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/NRJ
#EXTVLCOPT:network-caching=1000
http://192.168.113.1:8000/retro

И открываем его, например, VLC player. Теперь все станции в одном плейлисте и не нужно прыгать по вкладкам.

 

image_pdfimage_print

Leave a Reply

Your email address will not be published. Required fields are marked *