[foms] WebM Manifest
Philip Jägenstedt
philipj at opera.com
Thu Mar 17 05:47:26 PDT 2011
On Thu, 17 Mar 2011 12:24:57 +0100, Jeroen Wijering
<jeroen at longtailvideo.com> wrote:
>
> On Mar 17, 2011, at 9:35 AM, Philip Jägenstedt wrote:
>
>> My approximate solution for the low-level API is something like this:
>>
>> * XMLHttpRequest is used to get a data Blob for a resource.
>>
>> * We have some mechanism to concatenate several Blobs into a Stream
>> object
>>
>> * setting video.src to the Stream object just works, similar to how
>> video
>> conferencing is defined.
>>
>> What's missing here is to make XMLHttpRequest byte range aware, so that
>> one could do the kind of thing you mention above.
>
> Do note a few additional JavaScript APIs are required in order for such
> a low level API to work:
>
> *) Byte-level access to the data fetched using XMLHttpRequests. For
> example, to read and parse the seek index and to read and store the
> codec configurations.
This will eventually be possible, see
http://annevankesteren.nl/2010/12/xmlhttprequest-response
> *) A means to detect decoding load (e.g. CPU load, frames
> painted/dropped, pixel throughput), so processing constraints can be
> taken into account.
Mozilla is already working on playback statistics, I assume that something
will eventually be standardized.
> I'm not up to date with all functionalities XMLHttpRequests, but I
> presume there's events like initialization (to calculate latency) and
> progress (to calculate bandwidth)?
If there are progress events for the request, then both the latency and
bandwidth could be inferred from that.
> Next, the Stream API needs to be very strictly defined in terms of how
> provided A/V frames should be formatted, and how and when codec
> initialization data must be (re)sent.
>
> Basically, javascript handles the demuxing. This would be a great API,
> allowing for much flexibility. At the same time, the amount of knowledge
> required for such an API would be so staggering (e.g. full understanding
> of video containers) that few people would be able to work with it.
I may very well be in need of education, but I don't see why that needs to
be the case.
Assume a manifest at its simplest is a list of URLs and switchover times.
If one has a "manifest API" that allows one to add URLs and switchover
times, then surely anything that can be done with a manifest can be done
with the API? If a manifest solution doesn't require inspecting the data
outside of the normal decoding, why would it be necessary when one uses an
API?
--
Philip Jägenstedt
Core Developer
Opera Software
More information about the foms
mailing list