Farid Ahmadian / Slackware

Slackware 12.2 - Setup an online radio station using icecast

Public domain


icecast Server

cd /usr/src/
wget -c "http://downloads.xiph.org/releases/icecast/icecast-2.3.2.tar.gz"
tar zxf icecast-2.3.2.tar.gz
cd icecast-2.3.2
./configure --prefix=/usr/local/icecast
make && make install
mkdir -p /usr/local/icecast/var/log/icecast
chown -R nobody.nogroup /usr/local/icecast/var/log/icecast/
cp /usr/local/icecast/etc/icecast.xml{,.bak}

/usr/local/icecast/etc/icecast.xml

<icecast>
    <limits>
        <clients>100</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>hackme</source-password>
        <relay-password>hackme</relay-password>
        <admin-user>admin</admin-user>
        <admin-password>hackme</admin-password>
    </authentication>

    <hostname>localhost</hostname>

    <listen-socket>
        <port>8000</port>
        <bind-address>127.0.0.1</bind-address>
        <shoutcast-mount>/stream</shoutcast-mount>
    </listen-socket>

    <fileserve>1</fileserve>

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

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <loglevel>3</loglevel>
        <logsize>10000</logsize>
    </logging>

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

Launch icecast

/usr/local/icecast/bin/icecast -c /usr/local/icecast/etc/icecast.xml
tail -f /usr/local/icecast/var/log/icecast/error.log
http://localhost:8000/admin/stats.xml

libshout (client side)

cd /usr/src
wget "http://downloads.us.xiph.org/releases/libshout/libshout-2.2.2.tar.gz"
tar zxf libshout-2.2.2.tar.gz
cd libshout-2.2.2
./configure && make && make install
ldconfig

ices client

cd /usr/src
wget http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz
tar zxf ices-0.4.tar.gz
cd ices-0.4
./configure --prefix=/usr/local/ices && make && make install
cp /usr/local/ices/etc/ices.{conf.dist,xml}

/usr/local/ices/etc/ices.xml

<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
  <Playlist>
    <File>/usr/local/ices/etc/playlist.txt</File>
    <Randomize>1</Randomize>
    <Type>builtin</Type>
    <Module>ices</Module>
    <Crossfade>5</Crossfade>
  </Playlist>

  <Execution>
    <Background>0</Background>
    <Verbose>0</Verbose>
    <BaseDirectory>/tmp</BaseDirectory>
  </Execution>

  <Stream>
    <Server>
      <Hostname>localhost</Hostname>
      <Port>8000</Port>
      <Password>hackme</Password>
      <Protocol>http</Protocol>
    </Server>

    <Mountpoint>/ices</Mountpoint>
    <Name>Radio Pejman</Name>
    <Genre>General genre</Genre>
    <Description>Pejman's Online Radio Station</Description>
    <URL>http://localhost/</URL>
    <Public>0</Public>
    <Bitrate>128</Bitrate>
    <Reencode>0</Reencode>
    <Channels>2</Channels>
  </Stream>
</ices:Configuration>

/usr/local/ices/etc/playlist.txt

/root/music/01.mp3
/root/music/02.mp3
/root/music/03.mp3
/root/music/04.mp3
/root/music/05.mp3
/root/music/06.mp3
/root/music/07.mp3
/root/music/08.mp3
/root/music/09.mp3
/root/music/10.mp3

Launch ices

/usr/local/ices/bin/ices -v -c /usr/local/ices/etc/ices.xml

Listen

mplayer http://localhost:8000/ices

BY: Pejman Moghadam
TAG: icecast, ices, radio
DATE: 2010-01-13 00:44:40


Farid Ahmadian / Slackware [ TXT ]

With many thanks and best wishes for dear Pejman Moghadam, someone who taught me alot in linux and life :)