[Icecast] Config ICECAST server in Wndows XP Pro
Geoff Shang
geoff at hitsandpieces.net
Wed Feb 15 14:46:54 UTC 2006
tam taly wrote:
> 1. Actually we are having MP3 file which is in server (Eg.
> www.myserver.com/admin/music/myvoice.mp3 ). When user hit the url they
> want to get the music with streaming.
Ok. You don't really need Icecast for this, you can just stream it off
your webserver.
1. Create a .m3u file with the URL of your file. Using your example
above, it would contain:
http://www.myserver.com/admin/music/myvoice.mp3
For the sake of this example, lets put it in the same place and call it
myvoice.m3u.
2. Place a link to this m3u file on your server:
<A HREF="http://www.myserver.com/admin/music/myvoice.m3u">Click to
listen</A>
3. Try it out. It should load a user's default MP3 player and stream the
file from the beginning. This means that if you want modem listeners to be
able to listen to it, best to encode the file to something like 24kbps.
Note that people using Icecast who don't have a webserver can use Icecast
as one by using the fileserve feature. Just set fileserve to 1 in the
config file and place the files you want to serve in the directory you
configure as your webroot directory.
> 2. We want to give live voice streaming to users (Eg: Live Cricket
> Commentary). When user is in our web page , they have to hear live voice or
> some how they want to hear live voice with streaming.
Ok, here's where you need Icecast.
As far as your website is concerned, you do the same thing. Create a .m3u
file with a link to the stream (i.e. http://myserver.com:8000/cricket)
Note that Icecast can automatically generate these for you, if you place a
link to your stream with .m3u on the end. e.g.
<A HREF="http://myserver.com:8000/cricket.m3u">click here to listen</A>
would return the above URL in a .m3u playlist file.
For this to work properly the "hostname" item in the config file must be
set correctly. (see below)
Below are very basic instructions on how to get a stream up on Icecast.
This assumes you want to use the same password for all streams and no
listener authentication. Obviously you can make it a lot more complicated
than this, with authentication schemes, different streams with different
source passwords, etc. But lets keep it basic for now.
I believe you can edit the config file using the GUI in the Windows version
of Icecast. but I have no experience doing this and so will talk about
editing the conf file with a text editor like Notepad.
I'm going to go through the minimal config which is supplied with Icecast.
In the unix distribution I have, it's called icecast_minimal.xml and is
meant to be simple to set up.
1. Open the Icecast configuration file. I've never used the Windows
version so I don't know where it lives. But it sounds like you've already
looked at it.
2. before you start, decide what bit rate you will be streaming at and how
many listeners you can support. Obviously, if you stream at 128kbps,
unless you're on a big connection you won't be able to support too many
listeners. Also, only broadband listeners will be able to hear it. As a
general rule, you need to allow some overhead for internet protocols, etc.
So if you have a 256kbps outgoing connection, you won't be able to support
8 listeners at 32kbps, you should be able to support 6 and may be able to
support 7 (you'll have to test).
3. Having worked out how many listeners you want to be able to support,
configure the server correctly. "sources" refers to the number of sources
or streams that you want to allow at any one time. It's set to 2 by
default.
Clients is, if I'm not mistaken, the total number of clients, not just
listeners, so it needs to equal the max number of listeners you want to
support, plus the max number of sources which is also defined here. The
clients line isn't in the basic file, which I think may be an oversight,
and I don't know what the default limit is. so if filling your server is a
concern, you might want to add it in.
say you wanted to support 10 listeners and 1 stream, your limits section
would look like this:
<limits>
<clients>11</clients>
<sources>2</sources>
</limits>
Note that you can set listener limits for individual streams, but that's
outside the scope of this message (I can tell you how to do that next
time) if you want to know.
4. Set your source password. ***DO NOT USE THE ONE THAT'S IN THE CONFIG
FILE*** This is the password your streaming application will use to
connect to your server.
5. Set your admin username and password. technically this isn't strictly
necessary to change in order to start streaming, but I highly recommend
changing it from the defaults, at least the password anyway.
6. Set your hostname correctly if you want Icecast to generate .m3u files
for you (see above). If you set this wrong, the generated .m3u file wil
have the wrong host name in it.
7. Set the port item to the appropriate port you want your
server to listen on for connections. If you are behind a firewall, you'll
need to have this port forwarded through to your Icecast server.
8. If you want to be able to serve other types of files with Icecast,
enable fileserving.
You can probably leave everything else set the same unless you feel a need
to change any of it.
Now, here's the fun part. sourcing your stream. There's many programs
which can source a stream for you. A bunch of them are listed on the
Icecast website in the 3rd party apps section. Since you want to stream
something from your sound card, you'll want something which can do this.
The simplest application may be Oddcast v3, the stand-alone edition from
oddsock.org. This means you don't need a program like Winamp with a
plugin, though you can of course use this.
How you will configure your streaming client will differ from program to
program, but here's the basics:
1. Your streamer will need to specifically support Icecast2. If it
doesn't and you must use something that only supports Shoutcast, then your
server will need some additional configuration to support this.
2. configure your streamer to use the following settings:
Server type: Icecast2
Server host: <the address of your Icecast server, can be "localhost" if
it's the same machine>
Server port: <the port you specified in #7 above>
Password: <the source password you specified above>
Mount point: <your desired mount point for your stream - see below>
You may also want to tell your streamer to list, or not to list, your
stream on a YP server. this assumes your server is configured to allow
this. I think it is by default, though you'll need to hcheck this, but it
will only list streams that are configured to be listed in the source
client.
Discussion of mount points:
A mount point is used to allow more than one stream to be hosted on an
Icecast server. A mount point is vertual, in that it doesn't really exist
anywhere except in the server.
For example: We have been using the mount point of /cricket in our
examples. You don't need to have a file or folder anywhere called
/cricket.
Mount points are created by Icecast when a source requests that it be
created, assuming the source has the authority to do so. Using a global
source password like we have here, any source that connects and supplies
this password can create any mount point it likes.
By convention, MP3 mount points look like our /cricket example above, and
Ogg Vorbis streams have .ogg on the end. The reason for this is that some
players are broken and do not play the stream properly, they assume it's an
MP3 stream unless there's a .ogg extension on the end. So if you want to
stream in Ogg Vorbis, you might want to use /cricket.ogg instead of just
/cricket .
It is possible to set up specific passwords for specific mount points, as
well as max number of listeners, YP details, fallbacks, and all sorts of
other cool stuff. But that's outside the scope of this Email too.
3. Since you're going to be recording from your soundcard, you'll need to
inform your stream client to take its sound from the sound card.
Presumably, this is the only way that Oddcast v3 stand-alone gets its
audio. If you use a program like Winamp or Foobar2000 with a plugin
like Oddcast DSP or SAM, you'll either need to use a Line Input plugin
in Winamp or enable advanced recording in the plugin. Both approaches
have advantages and disadvantages, a subject I'm happy to go into if you
need it.
You will also have to configure your sound card to record from your line in
source and set an appropriate level. This is done in Volume Control, in
the Recording Controls section.
Now that you've got your streamer and your server configured, start up your
server and connect with your streamer. And you should be good to go.
Let me know if you need any more details or clarifications. And other
listers let me know if I've left anything out. And also let me know when
you get that cricket streaming up <wink wink>.
Geoff.
More information about the Icecast
mailing list