Intent to Implement: Mediastream Image Capture

69 views
Skip to first unread message

Miguel Casas-Sanchez

unread,
Apr 13, 2016, 8:17:08 PM4/13/16
to blink-dev
Contact emails

Spec

Summary
Enable taking pictures from an Image/Video Capture Device.

Motivation
This feature lets users grab frames and/or take photos using a camera or other Video Capture Device. In this sense, it bridges a gap between native applications and Web Apps by providing access to the users' hardware. It also surfaces sophisticated camera capabilities and controls e.g., Focus areas and/or flash light controls.

For reference, currently the only possibility to access a camera frame is to render the video frames coming from a MediaStream Video Track onto a <video>, casting it to a <canvas> and downloading the pixels from it.

Interoperability and Compatibility risk
Firefox: In development
Edge: No public signals
Safari: No public signals
Web developers: Positive

The risk of incompatibility is very low since Firefox has not released their partial implementation. 

Ongoing technical constraints
Nothing major foreseen.

https://goo.gl/QfW355 contains a rough analysis/mapping between the W3C surfaced camera capabilities/settings, and the equivalent support for different OSs.

https://crrev.com/1846753003 is a rough experimental CL illustrating how the different parts would fit together in Blink and browser/renderer_host 

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux,
Chrome OS, Android, and Android WebView)? Yes or no.
Yes.

OWP launch tracking bug

Link to entry on the Chrome Platform Status

Requesting approval to ship?
No.

PS: This Spec/ITI has nothing to do with W3C HTML Media Capture :)

Alex Russell

unread,
Apr 13, 2016, 11:48:45 PM4/13/16
to Miguel Casas-Sanchez, blink-dev

This capability sounds super useful!

Is there an explainer doc for this spec somewhere? I was trying to understand how you might work with multiple cameras and it wasn't immediately obvious.

Also, what's the proposed strategy for encoding/compressing these images?

Regards

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Miguel Casas

unread,
Apr 14, 2016, 2:26:33 PM4/14/16
to Alex Russell, blink-dev
On 13 April 2016 at 20:48, Alex Russell <sligh...@google.com> wrote:

This capability sounds super useful!

Is there an explainer doc for this spec somewhere?

Probably I'll be creating some demos imminently, but before that there's snippets in the Spec, e.g. 

I was trying to understand how you might work with multiple cameras and it wasn't immediately obvious.

Enumeration, selection and access to the camera is all left to getUserMedia(), essentially. 

It might indeed be confusing, all these MediaStream related specs, so I made an eng-diagram :)  that explains how all these Real-Time Video/Audio parts fit together

Inline images 1


 

Also, what's the proposed strategy for encoding/compressing these images?

takePhoto() produces a Blob, that in principle can be encoded already. But this needs more clarification elsewhere, any ideas?



--

Miguel Casas-Sanchez | Gatopardo del Software | ydog / mca...@google.com | +1 (650) 603 1380

Reply all
Reply to author
Forward
0 new messages