[Theora-dev] Live HTTP streaming of Theora files

Ralph Giles giles at xiph.org
Wed Nov 2 10:47:52 PST 2005

On Wed, Nov 02, 2005 at 09:40:18AM -0800, David Barrett wrote:

> It really seems like some Apache mod (call it "mod_tail") would do the 
> trick: have one app (any app) just record live audio/video to a file (in 
> any format), and have mod_tail stream out the tail to anyone who 
> requests.

It would work, but it has its own issues. Presumedly this behaviour is 
controlled by a directive on a Location or Directory, and you could use
symlinks to have the same spooling file available both as an archive and 
with the mod_tail access. How then do you tell apache to stop providing
the tailed version when the broadcast is over? remove the symlink? add a 
redirect to the archive version?

Not that I'm discouraging you from writing such a thing, it's just 
non-trivial to administer. As a dedicated tool, icecast handles these 
things much better but of course there's the overhead of installing and 
configuring another piece of software.

> There might need be some kind of header caching...  But that's the 
> overall idea.

Yes, this is required for Ogg Vorbis and Theora streaming.

> Does anything like this exist?  Why did Icecast go the route of creating 
> a standalone server rather than extending Apache?

I can't speak for the authors. Probably it was easier than writing an 
apache module, especially at the time. In the "internet radio" model
icecast was originally written to support, people generally just used
their music player app to create the streams with a special output 
plugin to talk to the streaming server; having a special protocol (just 
modified HTTP in icecast's case) to source the stream is also easier 
that supporting some kind of safe write access to the webserver's 
filesystem for all the people you might want to serve streams from. And 
of course, it doesn't *require* you to archive the stream, which is a 
nice option to have in some cases.


More information about the Theora-dev mailing list