Live Source Client For IceCast
LiveIce is the source client for Icecast which encodes an mpeg stream for
broadcast as it is created. Unlike clients such as Shout and IceDJ this
permits the broadcast of live audio, rather than prerecorded mp3's.
What Is LiveIce?
LiveIce was developed after the appearance of IceCast
to provide the Real Time streaming functionality which makes it a viable
solution for broadcasting. It is based on the guts of 2 of my previous
works - Mp3Serv, the first mp3 broadcasting system & Mp3Mixer, a toy
which allows the user to 'Mix' with mp3 streams. For legal reasons the
actual mp3 encoder cannot be included in the programme, instead the software
uses an external encoder which is executed and fed data by LiveIce. Several
encoders are now supported, including Commercial packages such as Fraunhofer's
l3enc and mp3enc, Xing Technologies beta test of xingmp3enc for Linux,
as well as the many adapations of the ISO sources such as LAME 3.0 and
The mixer mode also makes great use of mpg123
to decode the mp3 streams into raw pcm data which is then mixed by the
programme, this is one piece of fuctionality which I'd like to bring into
the LiveIce code, but for the moment you still need the mpg123 binary on
What Is LiveIce XMMS?
LiveIce XMMS is an effects plugin for xmms which sends streams to
IceCast and provides a limited set of
functions similar to those provided by liveice but without half the hassle.
LiveIce XMMS lacks many of the features of the full version of
LiveIce but provides the main functions needed to stream from xmms.
Much of this simplicity comes from the GUI which was designed by Peter from
the XMMS team, also note - that this is a relatively recent development
and so none of the documentation on this page refers to installing or setting
up the plugin..... (Also - I should thank DrFatal from xmms for the Logo)
Where Can I Get It?
Getting LiveIce - you can get the source code either with
the distributions of Icecast, it will
be found in a subdirectory and needs to be compiled and installed seperately.
Alternatively the newest versions of LiveIce will be available via anonymous
CVS on the Icecast server. And finally for all those traditionalists out
there I should always have a fairly recent version available for download
as a .tar.gz archive.
LiveIce XMMS sourcecode is available
Ryan Weaver has been kind enough to make RPM's
How do I install it?
I've put together a nice little guide to installing
a working system and on choosing an encoder which is suitable for you,
there are a lot of rough edges right now, and I'm sure there are plenty
of bugs for people to point out or for that matter features to request.
After all, this is what open source is all about.
What Features Does It Already Have?
Encodes mp3 audio from raw audio data as it is created and stream it to
an IceCast/Shoutcast server
Supports icy or x-audiocast headers for connection.
Should run on any Unix system - OSS support required if you want to use
Curses based user interface to make those terminal sessions look more interesting.
Supports simple terminals if you haven't got Curses.
Compatible with many popular mpeg encoders
Configuration options may be set in multiple configurations files
and on the command line
Mixer mode allows the user to play existing Audio files as part of a live
Mixer mode allows the user to mix multiple channels of audio to keep a
seamless broadcast running
Input files can have their speed and volume independently controlled on
a per-channel basis
Mixer commands can be recorded to file and replayed at a later date
Playlists can be played in sequential order or randomly
Any files played can be logged to a file, for use by external programs
Output can be streamed at multiple bitrates to multiple servers
Title streaming to icecast servers based on the loudest channel
What About New Features?
I get asked for lots of new features.... and some will get implemented,
while others won't, I'm only one person and only have so much time, and
moreover only so much talent. Here's the list of things which may or may
Real Soon Now - Features I'm Implementing
Graphical Interface - I've got a TK gui for creating configuration files
and a similar one for generating mixer keystrokes, it's just a case of
putting the hooks into the control and display code.
Better playlists - It's just a slow evolution at the moment.
Getting rid of sox - if I can parse enough of the right sort of headers....
Mixer support for icecast streams - just a bit of work with non-blocking
Fast-Forward and Rewind - limited support already - hacked mpg123 needed
Maybe If I've got time features....
Effects - I've got a few effects algorithms which are easy to implement,
I just need a good interface to let the user control them.
Burst suppression - smooth out the data rate from the Xing encoder.
Proper X - interface, rather than just a frontend
ALSA support - as soon as ALSA supports my Vibra SB16 soundcard
Executables in playlists - spawn off other programmes to generate audio.
Features which I probably won't implement
Support for Lose95/98/NT - I don't have a development platform for these.
and I'm sure there are better people out there. (oh and there's the small
matter of Windows Sucking)
Playlist interfacing with external programmes for automaitc radio station
mangement.... ewwwwwwwwww I'm a live DJ kind of man - I find the concept
of automatic radio stations to be repulsive.
How do I Use it?
OK.. I know it's not exactly user friendly, but I think it's more important
to make it usable. Anyway, I'm putting together a users
guide on the web to help everyone get into it.
Is there any other garbage on this Web Page?
Well.... if you're broadcasting then you might like to downoad my IceCast
Station ID's (AKA Jingles) "Open Mind" and
"Cool Tunes" - tell the world about free
software and how you're different from those ShoutCast servers.
Manley / email@example.com