Интернет Радио icecast2 + ices0

# cd /usr/ports/audio/icecast2
# make install clean 
# ee /etc/rc.conf
icecast_flags="-b -c /usr/local/etc/icecast_pop.xml"
icecast_enable="YES"

копируем дефолтный конфиг в новый:

#cd /usr/local/etc/
# cp icecast.xml.sample icecast_pop.xml 

Далее в icecast_pop.xml правим такие строки:

<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>192.168.1.15</bind-address>
    </listen-socket>

192.168.1.15 ip сервера

далее relay

<relay>
        <server>81.88.113.18</server>
        <port>8000</port>
        <mount>/</mount>
        <local-mount>/radio_pop.mp3</local-mount>
        <on-demand>1</on-demand>

        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay> 

Где 81.88.113.18 – Ip-адрес сервера с которого берем радио, 8000 – порт по которому он транслирует это радио. / – точка монтирования. /radio_pop.mp3- локальная точка монтирования. Строка 1 – говорит, что icecast2 будет работать в качестве демона.

не забываем снимать комментарии с секции

проверяем :

#icecast -b -c /usr/local/etc/icecast_pop.xml 


———————————————————————————————————————-
могут возникнуть проблемы например :

Changed groupid to 65533.
Changed userid to 65534.
FATAL: could not open error logging (/usr/local/var/log/icecast/error.log): No such file or directory
FATAL: could not open access logging (/usr/local/var/log/icecast/access.log): No such file or directory
FATAL: Could not start logging

или

Detaching from the console
ERROR: You should not run icecast2 as root
Use the changeowner directive in the config file

1. В /usr/local/var/log/icecast/ создаем эту директорию, а уже в ней создаем файлы логов

даем права

 # chown -R nobody:nogroup access.log
# chown -R nobody:nogroup error.log

2. надо раскоментировать

<changeowner>  
            <user>nobody</user>  
            <group>nogroup</group>  
        </changeowner> 

———————————————————————————————————————-

# cd /usr/ports/audio/ices0
# make install clean 
# cd /usr/local/etc/
# cp ices.conf.dist ices.conf 

конфиг такой:

<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
  <Playlist>
    <!-- Показываем где лежит плейлист. -->
    <File>playlist.txt</File>
    <!-- Если хотим что бы играло случайно ставим 1 -->
    <Randomize>0</Randomize>
    <!-- тип плей листа -->
    <Type>builtin</Type>
    <!-- Module name to pass to the playlist handler if using  perl or python.
         If you use the builtin playlist handler then this is ignored -->
    <Module>ices0</Module>
    <!-- если нужно что бы между песнями было затухание то разремируем и выставляем в секундах. по умочанию выключено т.е. 0.
    <Crossfade>5</Crossfade>
    -->
  </Playlist>

  <Execution>
    <!-- запускать демоном ставим 1 -->
    <Background>1</Background>
    <!-- хотите видеть все логи в файле ставим 1 -->
    <Verbose>1</Verbose>
    <!-- Каталог где будет находится лог и pid файлы -->
    <BaseDirectory>/tmp</BaseDirectory>
  </Execution>


  <Stream>
    <Server>
      <!-- ip  icecast сервера куда хотим прицепится -->
      <Hostname>localhost</Hostname>
      <!-- Port of the same -->
      <Port>8000</Port>
      <!-- пароль на конект что бы транслировать icecast server -->
      <Password>xxx</Password>
      <!-- сли сервер  Shoutcast ставим "icy", icecast 1.x ставим "xaudiocast", а если icecast 2.x то "http". -->
      <Protocol>http</Protocol>
    </Server>

    <!-- точка монтирования потока на айскаст сервера -->
    <Mountpoint>/ices</Mountpoint>
    <!-- The name of the dumpfile on the server for your stream. DO NOT set
         this unless you know what you're doing.
    <Dumpfile>ices.dump</Dumpfile>
    -->
    <!-- Имя вашей трансляции, а не имя трека -->
    <Name>mp3</Name>
    <!-- Жанр, или стиль вашей трансляции -->
    <Genre>pop</Genre>
    <!-- большое описание вашей трансляции -->
    <Description>Local stream</Description>
    <!-- ссылка вашей трансляции -->
    <URL>http://faro.az/</URL>
    <!-- 0 если не хотите сделать ваш сервер публичным и 1 если хотите -->
    <Public>0</Public>

<!-- качество трансляции -->
    <Bitrate>128</Bitrate>
    <!-- если поставить 1 то ices попробует на лету пережимать трансляцию при помози  liblame в нужное качество потока -->
    <Reencode>0</Reencode>
    <!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
    <!-- Sampe rate to reencode to in Hz. Leave out for LAME's best choice
    <Samplerate>44100</Samplerate>
    -->
    <Channels>2</Channels>
  </Stream>
</ices:Configuration> 
# ee /etc/rc.conf

ices0_enable="YES"
ices0_flags="/usr/local/etc/ices.conf"

 указываем путь find /tmp/music -name "*.mp3" > /tmp/music/playlist.txt 
# ices -c -b /usr/local/etc/ices.conf