[Theora-dev] Live HTTP streaming of Theora files
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
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