- From: Ralph Giles <giles@xiph.org>
- Date: Sat, 24 Mar 2007 11:47:49 -0700
On Fri, Mar 23, 2007 at 04:33:39PM -0700, Eric Carlson wrote: > Yes, the UA needs the offset/chunking table in order to calculate > a file offset for a time, but this is efficient in the case of > container formats in which the table is stored together with other > information that's needed to play the file. This is not the case for > all container formats, of course. Just to be clear, this isn't strictly true; one can still perform bisection seek over HTTP with the byte Range header. As has been mentioned, VLC implements this. Alsaplayer is another example. It does work. It's of course less efficient than when one has a seek table, but not excessively so. Tangentially, I at some point looked at implementing 'seconds' as a Range header unit in Apache. (The HTTP Range header allows arbitrary, units, bytes is just the only one that is defined by the spec). The idea was to have the server do the seeking and return a valid file starting at the requested time offset, or list of intervals. Then a client could do very naive seeking and just play what it got. In the end I abandonded it over worry with cache interaction. If you request a sequence of intervals you don't in general get the same byte stream as if you request the whole file, because the server is re-packaging the data for each request. With Ogg this sort of works, because concatenated streams are still in spec, so the "decoded result" is the same, but it doesn't work for all containers. The annodex query path seemed a better choice. -r
Received on Saturday, 24 March 2007 11:47:49 UTC