What a pain this has been, but at least it’s now working, sort of.
I found something called esd sound daemon, ported to MacOSX via darwin ports project. Needed a bit of a hack to work with Griffin iMic USB sound input, but it works.
- Wrote a perl script to start esd sound daemon at startup. esd captures sound, does nothing with it.
- Wrote a perl script to launch encoder at startup.
- esdrec grabs sound from esd, pipes it through stdout.
- lame encodes it.
- Another custom perl script uses libshout and Shout.pm perl mod to send sound to icecast server.
So, the encoder looks like this
/usr/local/bin/esdrec | /usr/local/bin/lame -b 256 - - | /usr/local/bin/ice_send.pl /usr/local/etc/ice_send_256.conf
ice_send_256.conf has the server name, password, username, and mount point for the stream.
Actually doing two streams
/usr/local/bin/esdrec | /usr/local/bin/lame -b 128 - - | /usr/local/bin/ice_send.pl /usr/local/etc/ice_send_128.conf
Been using weasel as server and source, now using wruv mac as source. been using weasel, badger, and now funnelweb as server. Listen at http://funnelweb.uvm.edu:8005/wruv_test_128.m3u http://funnelweb.uvm.edu:8005/wruv_test_256.m3u
meanwhile, Brian Bittman, external WRUV non-student volunteer, has been setting up an alternate linux box for encoding. Which will ultimately be used is to be determined.