W3C home > Mailing lists > Public > public-media-capture@w3.org > December 2011

Re: MediaStreamRecorder ideas

From: ᛏᚮᛘᛘᚤ <tommyw@google.com>
Date: Fri, 9 Dec 2011 13:24:45 +0100
Message-ID: <CALLKCfMzn=UVKLvbEW8kcBQowD5yGi=6QqyaL5qt8n9uB28Q+Q@mail.gmail.com>
To: Travis Leithead <travis.leithead@microsoft.com>
Cc: "public-webrtc@w3.org" <public-webrtc@w3.org>, "public-media-capture@w3.org" <public-media-capture@w3.org>
Hi,
Great summary of my ramblings!

Regarding C, it is to protect weaker platforms (or from misbehaving sites).
If you only have very little disk (netbooks/chromebooks/tablets) etc etc
you don't want to fill it to the brim with temp video data.

And regarding E it is to simplify uploading the video to
your favorite site. The scratch data probably needs to be stored on disk,
and not in RAM. Even the standard says "create a file". I don't feel
strongly about this though.

/Tommy

On Thu, Dec 8, 2011 at 18:32, Travis Leithead <travis.leithead@microsoft.com
> wrote:

>  Let me translate this into a set of requirements:****
>
> A. The ability to stop a recording independently of retrieving the
> recorded data****
>
> B. Stop recordings automatically when MediaStreams end****
>
> C. Circular buffer for size time/limitation****
>
> D. Indicate the recording format with a MIME type****
>
> E. Use a File (rather than Blob) for recording output.****
>
> F. peek() to be able to extract recorded data so far without stopping the
> recorder.****
>
> ** **
>
> May I suggest one more based on your points below:****
>
> G. Ability to discover what recording MIME types are available in the UA**
> **
>
> ** **
>
> I'm totally behind A, B, & D, as these just seem obvious to me.****
>
> ** **
>
> Followup questions:****
>
> * Can you think of any scenarios that would necessitate C, other than UA
> size limitations? It seems like circular buffers are great for DVR
> scenarios, but you'd need a lot more ability to control the output (like
> seek support). Many of these scenarios are already supported by
> <video>--can we find a way to make them work together?****
>
> * Why File? Over Blob, a File adds "name" and "lastModifiedDate". What
> will the "name" be? It seems unnecessary since you'd need a way of naming
> the recording when you extract it, or before you start recording. For
> "lastModifiedDate" the recording is conceptually "in memory" and not
> necessarily committed to disk (though implementations will likely record to
> disk in a temp location, since recordings can be very large).****
>
> * As I've mentioned before, making the recording output a Stream [1]
> solves requirement F, since you can get the immediate recorded stream, and
> "collect" it into a Blob, and/or slice it up as desired.****
>
> ** **
>
> [1] http://dvcs.w3.org/hg/webapps/raw-file/tip/StreamAPI/Overview.htm ****
>
> ** **
>
> -Travis****
>
> ** **
>
> *From:* Tommy Widenflycht (ᛏᚮᛘᛘᚤ) [mailto:tommyw@google.com]
> *Sent:* Thursday, December 08, 2011 4:36 AM
> *To:* public-webrtc@w3.org; public-media-capture@w3.org
> *Subject:* MediaStreamRecorder ideas****
>
> ** **
>
> In my not-so-humble opinion the MediaStreamRecorder isn’t usable right
> now, and the API needs to be changed. I suggest the following changes as a
> minimum delta:****
>
>    1. MediaStreamRecorder should have a stop() method. Calling this will
>    stop the recorder but not throw away the data, the data will live until the
>    recorder is garbage collected. If the associated MediaStream stops/ends the
>    recorder should do so as well. Also the UA should be allowed to have a
>    maximum file size/time length and be allowed to throw away the oldest data
>    circular buffer style.****
>    2. MediaStream::record should take a optional MIME type (which may
>    have parameters). If no MIME type is given the UA can pick whatever is most
>    suitable, but if a MIME type is given it must be used. If the UA doesn’t
>    support the type or recording in general it should return a null pointer.
>    ****
>    3. MediaStreamRecorder::getRecordedData should return a File (instead
>    of a Blob) and stop recording. MediaStreamRecorder will optionally support
>    a peek() method that will return a Blob of the data recorded this far. This
>    will make life easier for weaker UAs.****
>
>  Thoughs?****
>
> ** **
>
> /Tommy****
>
> ** **
>
> --
> Tommy Widenflycht, Senior Software Engineer
> Google Sweden AB, Kungsbron 2, SE-11122 Stockholm, Sweden
> Org. nr. 556656-6880
> And yes, I have to include the above in every outgoing email according to
> EU law.****
>



-- 
Tommy Widenflycht, Senior Software Engineer
Google Sweden AB, Kungsbron 2, SE-11122 Stockholm, Sweden
Org. nr. 556656-6880
And yes, I have to include the above in every outgoing email according to
EU law.
Received on Friday, 9 December 2011 12:25:15 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:14:58 GMT