- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Sun, 07 Oct 2012 23:30:10 +0200
- To: Jim Barnett <Jim.Barnett@genesyslab.com>
- CC: public-media-capture@w3.org
- Message-ID: <5071F462.4040600@alvestrand.no>
On 10/07/2012 09:45 PM, Jim Barnett wrote:
>
> Harald,
>
> Travis and I started with record() attached to MediaStream, but we ran
> into problems:
>
> 1.Nothing I see requires that a MediaStream have only a single video
> track. Should recording blend all the video tracks into one
> incomprehensible mess? (The <video> element has a concept of the
> 'active' or 'primary' video track, but MediaStream doesn't.)
>
I'm not sure this is a valid issue, or it may be container format dependent.
If one tries to record something with multiple tracks onto a container
format that does not support them, failure is to be expected. But I
think some container formats can do this just fine (witness DVDs with
alternate camera angles). Subject matter expertise is needed here.
(I don't know the formats well enough.... I know it's possible to write
codecs in Javascript, but is writing a Matroska or DVI container
producer in Javascript something we expect people to do and get right?)
>
> 2.Any form of media processing (e.g., inserting still images into the
> video stream is one of the use cases, talking to an ASR system will be
> another) requires access to the individual media streams.
>
Yes, but that's not recording. (Which use case from the use cases
document were you thinking of?)
I can certainly argue for an API for individual stream access, but a) I
would not call it recording, and b) I would not call that satisfactory
for our recording use cases.
>
> As far as I can tell, you need both combined recording and access to
> the individual tracks. If that's the case, it's better to start off
> with a Track level API and figure out how to form a combined recording
> on top of it, than to start off with a Stream level API and try to
> extract the individual tracks from it.
>
I think the common case is the full-stream recording, and the access to
individual-track data is the advanced case. I'd want to do the common
case first.
YMMV.
>
> -Jim
>
> *From:*Harald Alvestrand [mailto:harald@alvestrand.no]
> *Sent:* Sunday, October 07, 2012 1:40 PM
> *To:* public-media-capture@w3.org
> *Subject:* Re: recording proposal
>
> On 10/05/2012 03:55 PM, Jim Barnett wrote:
>
> partial interfaceMediaStreamTrack :EventTarget {
>
> void record <imap://hta@eikenes.alvestrand.no:143/fetch%3EUID%3E.INBOX.W3C.webrtc.media%3E872#widl-record> (optionaltimeSliceType <imap://hta@eikenes.alvestrand.no:143/fetch%3EUID%3E.INBOX.W3C.webrtc.media%3E872#idl-timeSliceType> timeSlice);
>
> void stopRecording <imap://hta@eikenes.alvestrand.no:143/fetch%3EUID%3E.INBOX.W3C.webrtc.media%3E872#widl-stoprecording> ();
>
> Oops..... I got lost here.
>
> A MediaStreamTrack contains either audio or video.
>
> Recording, for any practical purpose, requires that one records audio
> and video together - synchronized, and in some kind of container format.
>
> This also means that the format produced by record() cannot possibly
> be compatible with the MediaSource API, since that's a combined format.
>
> I don't think this is what people expect of us.
>
> (I see this is listed under "open issues", but I don't think we should
> even start down this path with this fundamental limitation in place.)
>
> Harald
>
Received on Sunday, 7 October 2012 21:30:43 UTC