[whatwg] File API Streaming Blobs

On 8/8/2011 2:51 PM, Glenn Maynard wrote:
> On Mon, Aug 8, 2011 at 4:31 PM, Simon Heckmann <simon at simonheckmann.de 
> <mailto:simon at simonheckmann.de>> wrote:
>
>     Well, not directly an answer to your question, but the use case I
>     had in mind is the following:
>
>     A large encrypted video (e.g. HD movie with 2GB) file is stored
>     using the File API, I then want to decrypt this file and start
>     playing with only a minor delay. I do not want to decrypt the
>     entire file before it can be viewed. As long as such as use case
>     gets covered I am fine with everything.
>
>
> Assuming you're thinking of DRM, are there any related use cases other 
> than crypto?  Encryption for DRM, at least, isn't a very compelling 
> use case; client-side Javascript encryption is a very weak level of 
> protection (putting aside, for now, the question of whether the web 
> can or should be attempting to handle DRM in the first place).  If 
> it's not DRM you're thinking of, can you clarify?
>

Jonas Sickling brought up a few cases for XHR-based streaming of 
arraybuffers: progressive rendering of word docs and PDFs.
WebP and WebM have had interesting packaging hacks. Packaging itself, 
whether DRM or not, is compelling.
PDF supports embedded data, a wide range of formats. GPAC provides many 
related tools (MP4 based, I believe):
http://gpac.wp.institut-telecom.fr/

The audio and video tags drop frames
It seems to me that if a listener is not registered to the stream, data 
would just be dropped.

As an alternative, the author could register a fixed length circular buffer.

For instance, I could create  1 megabyte arrayview, run 
URL.createBlobStream(ArrayView)
and use .append(data). That kind of structure may support multicast 
(multiple audio/video elements)
and improved XHR2 semantics. The circular buffer, itself, is easy to 
prototype: subarray
works well with typed arrays.

Otherwise relevant, is the work on raw audio data
that Firefox and Chromium have released as experimental extensions.
It does work on a buffer-based system.

-Charles

Received on Monday, 8 August 2011 19:16:41 UTC