[Icecast] Config and other areas of struggle

Robert Jeffares jeffares.robert at gmail.com
Fri Jul 22 21:31:15 UTC 2016


Hi Alan,

Icecast set up is almost too easy:
heres the checklist

Give your server a fixed IP In Windows this is easy and there are plenty 
of help files.
Make sure you get the DNS number right. Various modem routers default to 
192.168.1.1 or 192.168.1.254 or variants of 10.x.x.x

in a console [ black screen with c:> under accessories] type ipconfig 
<enter>  to see what you have now.

On your router set up port fowarding so the outside world connects to 
your router on x.x.x.x and port 8000 is fowarded to the fixed IP of your 
server.

You can get in to your router by typing 192.168.1.1 [or whatever it is] 
in a browser and the username admin password admin for 99% of the time.

Configure icecast.xml as below; this is from a linux server but 
basically it's the same

<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>putsomethinginhere</location>
     <admin>youremail at somewhere/admin>

     <limits>
         <clients>100</clients>			<--- note increases on defaults
         <sources>20</sources>
         <threadpool>15</threadpool>
         <queue-size>524288</queue-size>
         <client-timeout>30</client-timeout>
         <header-timeout>15</header-timeout>
         <source-timeout>10</source-timeout>
         <!-- If enabled, this will provide a burst of data when a client
              first connects, thereby significantly reducing the startup
              time for listeners that do substantial buffering. However,
              it also significantly increases latency between the source
              client and listening client.  For low-latency setups, you
              might want to disable this. -->
         <burst-on-connect>1</burst-on-connect>
         <!-- same as burst-on-connect, but this allows for being more
              specific on how much to burst. Most people won't need to
              change from the default 64k. Applies to all mountpoints  -->
         <burst-size>65535</burst-size>
     </limits>

     <authentication>
         <!-- Sources log in with username 'source' -->
         <source-password>somepassword</source-password>
         <!-- Relays log in username 'relay' -->
         <relay-password>somepassword</relay-password>

         <!-- Admin logs in with the username given below -->
         <admin-user>admin</admin-user>
         <admin-password>somepassword</admin-password>
     </authentication>

     <!-- set the mountpoint for a shoutcast source to use, the default if not
          specified is /stream but you can change it here if an alternative is
          wanted or an extension is required
     <shoutcast-mount>/live.nsv</shoutcast-mount>
     -->

     <!-- Uncomment this if you want directory listings -->
     <!--
     <directory>
         <yp-url-timeout>15</yp-url-timeout>
         <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
     </directory>
      -->

     <!-- This is the hostname other people will use to connect to your server.
     It affects mainly the urls generated by Icecast for playlists and yp
     listings. -->
     <hostname>192.168.0.30</hostname>					<-- this is where you put the server "name"

     <!-- You may have multiple <listener> elements -->
     <listen-socket>
         <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->			<-- the <!-- and --> comment the line out
         <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
     </listen-socket>

     <listen-socket>
         <port>8004</port>
     </listen-socket>

     <!--<master-server>127.0.0.1</master-server>-->
     <!--<master-server-port>8001</master-server-port>-->
     <!--<master-update-interval>120</master-update-interval>-->
     <!--<master-password>hackme</master-password>-->

     <!-- setting this makes all relays on-demand unless overridden, this is
          useful for master relays which do not have <relay> definitions here.
          The default is 0 -->
     <!--<relays-on-demand>1</relays-on-demand>-->

     <!--
     <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>
     -->

     <!-- Only define a <mount> section if you want to use advanced options,
          like alternative usernames or passwords -->


<!--    <mount>
         <mount-name>/thewirelessstation.mp3</mount-name>			<-- ignore this and leave defaults. I have this set up for something.

         <username>someuser</username>
         <password>somepassword</password>



         <max-listeners>100</max-listeners>
         <burst-size>65536</burst-size>

     <stream-name>The Wireless Station 1530kHz Hawkes Bay</stream-name>
     <stream-description>The best music you ever will hear</stream-description>

     </mount>
-->

     <fileserve>1</fileserve>

     <paths>
		<!-- basedir is only used if chroot is enabled -->
         <basedir>/usr/share/icecast2</basedir>

         <!-- Note that if <chroot> is turned on below, these paths must both
              be relative to the new root, not the original root -->
         <logdir>/var/log/icecast2</logdir>
         <webroot>/usr/share/icecast2/web</webroot>
         <adminroot>/usr/share/icecast2/admin</adminroot>
         <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> -->

         <!-- Aliases: treat requests for 'source' path as being for 'dest' path
              May be made specific to a port or bound address using the "port"
              and "bind-address" attributes.
           -->
         <!--
         <alias source="/foo" destination="/bar"/>
           -->
         <!-- Aliases: can also be used for simple redirections as well,
              this example will redirect all requests for http://server:port/ to
              the status page
           -->
         <alias source="/" destination="/status.xsl"/>
     </paths>

     <logging>
         <accesslog>access.log</accesslog>
         <errorlog>error.log</errorlog>
         <!-- <playlistlog>playlist.log</playlistlog> -->
       	<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
       	<logsize>10000</logsize> <!-- Max size of a logfile -->
         <!-- If logarchive is enabled (1), then when logsize is reached
              the logfile will be moved to [error|access|playlist].log.DATESTAMP,
              otherwise it will be moved to [error|access|playlist].log.old.
              Default is non-archive mode (i.e. overwrite)
         -->
         <!-- <logarchive>1</logarchive> -->
     </logging>

     <security>						<-- not sure what happens in windows but the default will work
         <chroot>0</chroot>
         <!--
         <changeowner>
             <user>nobody</user>
             <group>nogroup</group>
         </changeowner>
         -->
     </security>
</icecast>


This should help

regards
Robert


-- 
*Communication Consultants*
64 Warner Park Avenue

Laingholm

Auckland 0604

09 8176358

0221693124

06 650 6087
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/icecast/attachments/20160723/174f643e/attachment.htm>


More information about the Icecast mailing list