[icecast] reencode scripts if anyone is interested

Brendan Cully
Fri, 06 Aug 2004 14:22:29 -0000

On Sunday, 24 June 2001 at 22:24, Jack Moffitt wrote:
> >     I decided to make a few shell scripts that can be used to connect
to
> > icecast, decode/reencode a stream, and then send the result back to
icecast.
> >
> >     I guess this can be done with liveice, but this seemed like a
simpler
> > solution for my needs. I have it triggered by a cgi script that i
click on
> > when at work and want to listen to my tunes at a lower, more reliable
> > bitrate.
>
> I often plug these kinds of scripts on IRC, and jwz has made his own
> available that power dnalounge.com.  You can find them at:
>
> http://www.dnalounge.com/backstage/src/
>
> Choice is always good.
>
> Brendan, weren't you thinking of adding this to ices :)

I was, and then I did. :)

It's in CVS now. I'm doing some cleanup over the next few days and
expect to have a "development" version ready by the end of next
week. It's changed too much to be released as 0.1.1, both in terms of
new features and lack of testing...

For the curious, here's the stuff I've done so far:

* Reencode the same playlist at different bitrates/sample
  frequencies/channels simultaneously for different mountpoints. Just
  add multiple stream sections to the config file or use multiple -m
  options on the command line.

* Read vorbis files and reencode them as MP3 - if you've got the CPU,
  you don't have to wait for your listeners to catch up, you can start
  storing your music as vorbis now. ices even parses vorbis comments
  for title streaming.

* Proper FIFO handling - including reencoding. The only thing you lack
  (obviously) is ID3 parsing.

* A new function for the playlists, get_metadata, which lets playlists
  set the title stream for each track if, say, you have better
  information in a database than in your ID3s. Also you no longer are
  required to define any functions but get_next.

* If ices receives SIGUSR1 it will skip to the next track in the playlist.

* Build system improvements.

* A man page. :)

Future plans include sending different streams to different servers
(not just different mountpoints), and handling PCM/WAV input...

-Brendan