[Theora-dev] Live HTTP streaming of Theora files

Ralph Giles giles at xiph.org
Tue Nov 1 13:50:17 PST 2005

On Tue, Nov 01, 2005 at 11:39:14AM -0800, David Barrett wrote:

> What's the easiest way to broadcast a "live" event using Theora?

Right now, the easiest approach is to encode live from the camera and 
forward that to the icecast streaming http server. Most players that 
handle theora can also handle http streams, including VLC, Helix, Totem,
and I think even windows media player with illiminable's plugins.

Icecast is available from icecast.org. There are a couple of live 
encoding solutions, but nothing really easy. VLC has some experimental 
support. If you don't mind the commandline, I'd recommend Jan's 
ffmpeg2theora+oggfwd. See http://www.v2v.cc/~j/ffmpeg2theora/oggfwd/ and 
related pages for source, binaries and examples.

> - I could encode the entire file into an Ogg/Theora file and just do a 
> progressive HTTP download, but that means I can't broadcast until the 
> event is complete.

That's correct. (actually, I've never tried; it's possible apache would 
let you pull an spooling file, but it still won't be broadcast because 
everyone has to start at the beginning.) Icecast handles this for ogg 
streams, caching the headers and sending them on connect before 
continuing with the current data.

> - It looks like there is some kind of Apache module (maybe 
> "mod_annodex") that does (maybe?) a progressive HTTP download of a 
> dynamically-generated Ogg/Theora file (?), but I'm a bit lost on the 
> details.

mod_annodex (and/or mod_oggchef) can do dynamic Ogg stream assembly. I 
don't know if they handle live feeds or not; maybe one of the authors 
can comment. In general I've not seen an apache module to handle live 
streams. It's a sufficiently different model that people have always 
used a dedicated server like icecast.

> - I'm very familiar with RTP at at a low level, and RTSP looks 
> straightforward, but I'm not sure what off-the-shelf servers and players 
> I need to actually broadcast and receive at a high-level.

Yes. We're developing RTP support now, but there's nothing currently 
available you'd want to use.

Hope that helps,

More information about the Theora-dev mailing list