Simple live audio streaming from OpenStack Summit using RaspberryPi

I have always wanted to have a simple way to stream audio from the OpenStack Design Summits, much like Ubuntu used to do for its Ubuntu Design Summit. Since every participant to Pycon 2013 was kindly given a Raspberry Pi and having a couple of hours to kill, I have started playing with a simple idea: configure a Raspberry Pi to capture audio and stream it to a public icecast server.

First thing: spin up a virtual machine on a public cloud that will be serving as public icecast server. I have used my UniCloud account, created a small server, 512Mb ram, Ubuntu LTS 32bit. I updated the default security groups to allow traffic on port 22 (SSH) and 8000 (icecast), and I also needed to assign a public floating IP.¬† Once the machine is up, simple apt-get install icecast2 took care of starting the audio streaming server. That’s it, streaming server part is done.

Back to the RasPi, in order to test the streaming server, I installed ezstream, copied the config files from /usr/share/doc/ezstream/examples. I copied ezstream_vorbis.xml to pi home dir:

<ezstream>
<url>http://INSTANCE_NAME:8000/armin</url&gt;
<sourcepassword>TheSecret</sourcepassword>
<format>VORBIS</format>
<filename>playlist.m3u</filename>
<!– looping the stream forever, for testing purposes –>
<stream_once>0</stream_once>
<svrinfoname>OpenStack Test Streaming Rradio</svrinfoname>
<svrinfourl>http://radio.openstack.org</svrinfourl&gt;
<svrinfogenre>OpenStack Test Streaming</svrinfogenre>
<svrinfodescription></svrinfodescription>
<svrinfobitrate>320</svrinfobitrate>
<svrinfochannels>2</svrinfochannels>
<svrinfosamplerate>44100</svrinfosamplerate>
<!– advertising on public YP directory –>
<svrinfopublic>1</svrinfopublic>
</ezstream>

The playlist.m3u is a simple text file with one .ogg file in there, enough to test it. Start the stream to be sent to the icecast server with

ezstream -c ezstream_vorbis.

And go play the audio in your favorite icecast player, the URL is something like http://YOUR_INSTANCE_NAME:8000/vorbis.ogg.m3u

Simple, rudimentary but I like because it seems to be easy. The next step for me is to buy a USB microphone to stream live audio captured in a room. The optimal configuration though is to use this system to stream audio easily from the OpenStack Summit rooms. I need a way to connect the USB input to a regular audio mixer: any idea on how to do that?