Server software such as Icecast and Shoutcast use a concept called 'client pull webcasting' (CPW). Normally to supply a continual stream of music for a web radio station or live feed, authors use professional streaming servers such as Flash Media Server. These send the audio data in a series of tiny chunks that are thrown away by the client as soon as they're played - which makes it more secure and avoids filling the listener's computer with megabytes of data. Professional streaming servers cost a lot of money, and for the amateur market Icecast and Shoutcast provide a cheerful low-tech solution - but CPW is not streaming. We know both systems use the word 'stream' a lot in their documentation, but a stream is something with tiny chunks and some intelligence at the server end to 'negotiate' the data being sent. Instead of streaming the data, CPW servers just send out a single MP3 file. A huge MP3 file. In some cases if your webcast is running 24/7, it's an MP3 file of infinite size! The server limits the download speed so (if it all works properly) there's just enough data downloaded per second to keep up with the playback. All this data is delivered by HTTP - normal 'web' protocols - but the problem is what to do with this vast file when you're listening!
Plugins for OS-level players like Winamp throw away the data every so often to avoid clogging your computer's memory - but Flash Player doesn't understand how to do this. When Macromedia was developing the sound engine for Flash Player many years ago, they didn't include methods to cope with very big files - people who wanted never-ending music went out and bought a streaming server like FMS! Flash Player understands 'regular' MP3 files - a few megabytes and with a known size and duration. When you tell it to collect something from a CPW webcast it has a whole heap of problems:-
To make this work, Minicaster puts back the intelligence that Flash Player forgot. Instead of trying to collect the entire file, it collects a section of it (a few minutes or more), plays it back then throws it away. A new section is collected, and the audio crossfaded from one to another - then off we go again, forever if we want to. There's no problem with memory being filled provided the listening computer has enough free RAM to hold one section - and that's usually only a few megabytes. Now this isn't a complicated idea - it's the way plugins have been doing it for ages - but Flash has quite a bit of difficulty with this idea of 'throw away'. We need to be very careful how we handle the sound data, as even 'basic' Actionscript ideas like asking how much has downloaded can cause Flash Player to die. Minicaster is playing very close to the cutting edge of Flash Player's kernel, and with all due respect to our partners at Adobe, the cutting edge is a scary place to play.
Minicaster connects directly to the 'mount point' of an Icecast or Shoutcast server - it doesn't read playlists. The details of the server are set in an XML configuration file that lives on your website, along with the SWF playhead itself. You don't need to run Minicaster on the same server as the Icecast/Shoutcast software, and since many CPW servers don't run a true webserver, very few people could if they wanted to! The free version of Minicaster will only connect to one mount point at a time, so the Shoutcast 'DNAS' system and playlist format is not used. Pick the most reliable mount point and use that. Remember that Minicaster wants to be told the mount point (like http://my.server:8000/live10) NOT the playlist file location.
Some webcasting servers such as Icecast allow sending music in non-MP3 formats (AAC, Ogg Vorbis, etc.). Flash can't understand anything except MP3 files - so before delivering a webcast through this playhead you need to check the format is pure MP3. You also need to ensure that the MP3 tracks are encoded at a 'standard' bitrate. For information on what bitrates Flash supports, refer to our guide. Minicaster has the intelligence to understand when a station can't be played, and it will stop trying and display an error.
We get asked a lot "when are you going to support other formats?" and the answer is "there are no plans to". It's not a case of writing Minicaster differently - Flash Player has an internal MP3 codec and there are no plans to allow the player to perform client-side audio decoding via operating-system registered codecs. Not only does that open a lot of problems with checking, updating and connecting to platform-dependent third party software, it also opens up some nasty security issues that we intend to keep closed.
Draftlight, DNeX and the Draftlight logo are Trademarks of Draftlight Networks
©2002-2007 Draftlight Networks all rights reserved