Andrew Jorgensen
It's better than bad, it's good!

Flumotion

For Christmas I set up a video stream for family members in Chicago to watch Christmas morning our parents house. I tried several options including VLC (which did very well) but settled on Flumotion for this year.

Flumotion is definitely worth looking at if you're interested in streaming your own live video. It's built on the GStreamer framework, Python, and Twisted. It uses a model of a manager process and one or more worker processes to get the actual work done. The worker processes need not be on the same machine, which really came in handy in my situation (or would have... more on that later).

With Flumotion I was able to easily grab video and audio off of a DV camera (over Firewire) convert it to Theora and Vorbis, mux it into an Ogg container and serve it up live over HTTP.

The big win here was that I was able to set up a worker process on a host other than the one capturing video and assign that worker to serve HTTP. This was important because I had been led to believe that my parents home was not reachable from outside. This turned out not to be the case, so in the end the stream was served directly, but the distributed approach worked fine and could prove very useful, especially considering the huge amount of processor power Theora requires.

Another sweet feature of this year's ChristmasCam was Cortado. Cortado is a java applet that plays the stream in your web browser.

Eventually you'll be able to use Flumotion to stream in virtually any format supported by GStreamer and serve it with HTTP or RTP. For now go check out the demo site.