Hi all. I believe there is an opportunity to have thousands of Shoutcast servers replaced with Icecast. What will do this is if Icecast can send a MPEG-4 AAC+ header as the first data a player receives when connecting to an audio/aacp stream. The reason for this is the AAC+ support added to Adobe Flash player last December. I could hear a loud sigh of relief each around the world when this was announced. There are literally thousands of internet stations wanting to use AAC+ embedded in their websites. However, it turns out that Flash requires a normal AAC+ file header before it will decode the audio. I believe it's own Flash Media Server provides this, but people are not going to spend $1000 on it. So the question is, can Icecast be configured to send some initial bytes when a listener connects? Even if a header was extracted and placed into a file? Thanks, Ross.
hate to burst the "collective sigh of relief" bubble, but Flash's HTTP-based streaming within their player is horribly broken. First off, in order to get it to even *stream*, you need to fake the content-length in the initial response header. Seemingly innocent at first, what this, in fact, does is cause the player to download that much data, regardless of "playstate". So, lets say you've built a nice flash player with a big ole "stop" button on it that stops the NetConnection, bingo, the audio stops. Unfortunately, due to the content-length header you sent, Flash (in it's infinite wisdom) decides to keep on downloading the stream unbeknownst to you, wasting a TON of bandwidth and possibly filling up your hard drive with cache files. This is all information I got from a LOT of testing with Flash's HTTP-based streaming with MP3, I suspect that it hasn't changed much, since the "content-length" tweak is still required for it to connect properly. I don't see a whole lot of motivation for them to fix these issues, thus allowing people to stream using non-Flash Media Servers. That being said, caching a the AAC+ header is certainly something that can be done in Icecast, heck, it's REQUIRED for streaming ogg vorbis streams (caching the first 3 pages of a vorbis stream - containing codebooks and other critical goodies). On a side note, Flash's RTMP (proprietary protocol) streaming does work very well, but, of course, requires a Flash Media Server.. Which has it's share of problems as well. Ed On Thu, Jun 12, 2008 at 5:37 AM, Ross Levis <ross at stationplaylist.com> wrote:> Hi all. > > I believe there is an opportunity to have thousands of Shoutcast servers > replaced with Icecast. > > What will do this is if Icecast can send a MPEG-4 AAC+ header as the first > data a player receives when connecting to an audio/aacp stream. > > The reason for this is the AAC+ support added to Adobe Flash player last > December. I could hear a loud sigh of relief each around the world when > this was announced. There are literally thousands of internet stations > wanting to use AAC+ embedded in their websites. > > However, it turns out that Flash requires a normal AAC+ file header before > it will decode the audio. I believe it's own Flash Media Server provides > this, but people are not going to spend $1000 on it. > > So the question is, can Icecast be configured to send some initial bytes > when a listener connects? Even if a header was extracted and placed into a > file? > > Thanks, > Ross. > > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/icecast/attachments/20080612/b9363585/attachment.htm
oddsock wrote:> That being said, caching a the AAC+ header is certainly something that > can be done in Icecast, heck, it's REQUIRED for streaming ogg vorbis > streams (caching the first 3 pages of a vorbis stream - containing > codebooks and other critical goodies).Technically icecast could be configured to cache/send something initially if the format is parsed but that is not the case for AAC like it is for vorbis. I doubt that the header in question is constant either. karl.
On Thu, Jun 12, 2008 at 3:37 AM, Ross Levis <ross at stationplaylist.com> wrote:> > So the question is, can Icecast be configured to send some initial bytes > when a listener connects? Even if a header was extracted and placed into a > file?On a technical level, this is pretty easy. You're obviously welcome to add this to your personal copy of icecast, and use it however you want. The icecast project is, of course, uninterested in adding explicit support for non-free codecs, so it won't ever be in an official release. HTTP live streaming to flash doesn't work all that well, though. If you were serious about this, you'd implement an RTMP server module for icecast (or drop icecast and use a third-party RTMP server - there's at least one that's open source). Mike
Flash HTTP AAC/HE-AAC streaming is disabled by design in the Flash Player. In order to correctly "stream" AAC/HE-AAC to the Flash Player, an RTMP encoder must be used. Example here: http://www.opticodec.com/flash There are some implementations out there that do a continuous progressive download of an AAC/HE-AAC file. This is not true streaming, as the content is cached to the user hard disk, and if not managed carefully, allows for glitches in the audio, not to mention filling up hard disks. Progressive downloading is very fundamentally different than what Icecast2 Server currently delivers for live streaming, and does not work nearly as well as true Icecast2 ICY streaming. -greg. ORBAN At 03:37 2008-06-12, Ross Levis wrote:>Hi all. > >I believe there is an opportunity to have thousands of Shoutcast servers >replaced with Icecast. > >What will do this is if Icecast can send a MPEG-4 AAC+ header as the first >data a player receives when connecting to an audio/aacp stream. > >The reason for this is the AAC+ support added to Adobe Flash player last >December. I could hear a loud sigh of relief each around the world when >this was announced. There are literally thousands of internet stations >wanting to use AAC+ embedded in their websites. > >However, it turns out that Flash requires a normal AAC+ file header before >it will decode the audio. I believe it's own Flash Media Server provides >this, but people are not going to spend $1000 on it. > >So the question is, can Icecast be configured to send some initial bytes >when a listener connects? Even if a header was extracted and placed into a >file? > >Thanks, >Ross. > > >_______________________________________________ >Icecast mailing list >Icecast at xiph.org >http://lists.xiph.org/mailman/listinfo/icecast__________________________________________________________________________ Greg J. Ogonowski VP Product Development ORBAN / CRL, Inc. Diamond Bar, CA 91765 USA greg at orban.com http://www.orban.com