Can I access the webcam via a browser plugin/add-On? - browser

I was wondering if I can access the webcam via a browser plugin e.g. for Firefox, Safari, Internet Explorer etc?
Are there already similar plugins/add-ons?
Thanks

It's possible to access the webcam through Flash, for instance.
An example of this is Omegle, which uses Flash to access the webcam.
An alternative is doing it in Silverlight, as in this example.
Finally, there's Java, in which you could write an applet to access the webcam. This article should demonstrate this.
If you wish to do it yourself, you will have to write the plugins yourself.
This can be done using the NPAPI for most browsers, or by writing a BHO (Browser Helper Object) for Internet Explorer.
How to interact with the webcam there depends on which language you choose, as you have full access to system libraries.
Note that writing a custom browser plugin is both harder, and a larger hassle for users, as they have to install something new, as opposed to just using their existing browser plugins.

I just found this:
http://www.html5rocks.com/en/tutorials/getusermedia/intro/
One year and a half after this question was made. I haven't tested it, but maybe it'll help.
From the link (just a copy/paste showing how to record something using the camera as input source):
<input type="file" accept="video/*;capture=camcorder">
<input type="file" accept="audio/*;capture=microphone">

None of the major Webbrowser's (IE, FF, Chrome) provide any special support for Webcams. You will need to either use the native OS's API (whatever that may be), or embed Flash in Webbrowser control in your browser plug-in.

You can use Mediadevices.getUserMedia (https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) to capture webcam stream on browser (chrome and firefox).
To play with webcam stream on safari, you would have to use a pollyfill - https://github.com/Temasys/AdapterJS
To record the video/audio stream, you can make use of Media recorder api https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder
(Note : recording stream is still a challenge in Safari as there is no support/pollyfill. However, it works perfectly on Chrome and Firefox latest versions).To make video recording work on Safari, it maybe worthwhile to explore https://github.com/ronghanghu/webcamjs (Note flash plugin needs to be installed and enabled)
Helpful demonstrations :
https://webrtc.github.io/samples/
https://mozdevs.github.io/MediaRecorder-examples/index.html
https://hacks.mozilla.org/2016/04/record-almost-everything-in-the-browser-with-mediarecorder/

Related

Node-webkit Browser Plugin

Description of the Problem
As NPAPI plugins will be deprecated in Chrome (maybe in Firefox too soon) and being part of a project (WebChimera) that is based on an NPAPI plugin. I've been thinking of different solutions to keep NPAPI support in browsers. (as porting this plugin to NaCL is currently impossible, but the plugin can be used in a frozen version of node-webkit that currently supports NPAPIs)
So I was wondering if it is possible for a browser page to open a node-webkit app on the user's PC, then using JS with/without jQuery to send data about the html element where the Node-Webkit window (with always on top set) should be to the app (maybe through a websocket) to always position it there.
I know I can get a html element's size, position in JavaScript, I also know I can track the scroll of the user and browser tab changes to do the necessary changes to the window size, position and visibility.
The Question
The thing that truly stops me from even attempting this is how would I know when a browser is not fullscreen, and how would I know the browser's position on the screen if it is not fullscreen either from the on page JS or from node-webkit directly. Another thing that should be a concern is what screen is the browser window on.
Am I the only one that has thought of such an endeavor with node-webkit, are there any open source projects attempting this?
Any thoughts or comments on this would be greatly appreciated as a solution to this would not only save NPAPI plugins in the near future but will also open a world where Node-Webkit can also be used as a viable solution to build browser plugins too. :)
This would involve a lot of painful hackery. You'd have to solve most of these issues on all platforms independently and rely on a lot of implementation details.
As a possible alternative, check out the plans for FireBreath 2.0 which will support plugins which can be loaded via NPAPI, ActiveX, and Native Messaging via a new protocol called FireWyrm. Currently there is no drawing support when using the FireWyrm interface and only Native Messaging is supported. Additionally it's not quite finished, though I'm getting close =]
Now it's possible to use libvlc to play video directly on NW.js/Electron page: https://www.npmjs.com/package/webchimera.js
What this project is: it's low level (written in C++) addon which use libvlc and allow decode video frames to JS ArrayBuffer object. In turn this ArrayBuffer object could be drawn on HTML5 canvas directly or with WebGL. This project use Node.js/V8 API directly and not use NPAPI at all, so will live even after NPAPI deprecation. Another good thing - perfomance of this (espesially if use WebGL) is comparable with original VLC player perfomance.
Simple usage example available at: https://github.com/jaruba/wcjs-player

Can we implement Miracast functionality in google_cast

Can we implement or tie in miracast functionality into chrome cast? Or configure the receiver to accept miracast content?
Update: Miracast is actually supported now. See here.
=====
Miracast probably never will be supported on the ChromeCast (without some sort of hack). However, a little workaround does exist. If you're just wanting to stream video, just drag/load the video into a Chrome tab and use the ChromeCast extension to steam that video content to your device. It should work with any files that Chrome itself supports (PDF, images, etc). Hope that helps.

What are the technologies behind Quake Live?

What technologies are used to power Quake Live?
Specifically, how do you create a web application that makes such extensive use of 3D in the browser? The service requires you to download and install a plug-in in order to play. How do you create such a plug-in, and how does it interact with the web site?
Browser programs are very simply, programs. They are given an interface to interact with the browser, but beyond that, they can do anything a normal native application can do, like use DirectX or OpenGL.
Internet Explorer registers plugins using ActiveX. Firefox, Chrome, Safari and most other browsers use Netscape's NSPlugin API.
The MDC has plenty of documentation on writing plugins for Firefox.
There is also a question on SO about writing plugins for IE.

how to record audio without flash and java from browser and upload to server

I want to upload the audio from user to server. How can i do it from browser itself. My main application is browser based. I am looking for browser and non browser based solution but It should be Open Source. That is why i put "without flash" in subject. With Java applet user will face problem in installing jre !! is there any hope that in near future browser will support such feature. Do we have any addon in firefox which can help in this regard.
What is the requirement for Open Source specifically relating to? There are open source/free software ways to produce flash content for the browser. You aren't tied to the Adobe Flash IDE.
Look into these products:
FlashDevelop
Adobe Flex SDK (Free download)
At the time of this question, there wasn't a way to do this. Today we can use html5 and the GetUserMedia function for the main browsers (safari is the exception) . There are many articles and examples on that subject.
One good example can be found here:
http://webaudiodemos.appspot.com/AudioRecorder/index.html

Video format that wouldn't require a browser plugin

What is the recommended (cross-browser) video format to use on websites so that users' browsers (or most of them) wouldn't require to download a plugin to view it?
There is no single video that will play in every browser. If you want it to work across the most browsers, you're going to have to encode your video more than once. Dive into HTML5 video has the gory details.
You nest your video references so that browsers try these in order, falling back if it's not supported:
Ogg Theora
MP4 H.264
A Flash container displaying #2
Number 1 gets you Firefox 3.5 and Chrome. Number 2 gets you Safari and the mobile phone WebKit browsers. Number 3 gets you IE, Firefox ≤3, and Opera.
There is no such format available yet. The best way to go is:
Flash (most of the users have flash plugin installed already, 99% according to http://www.adobe.com/products/player_census/flashplayer/)
OGG (This will be available in HTML5 as standard)
Yes HTML5 will solve some of the problems of not needing a plugin, but different browser vendors have chosen different codecs and file formats. It's complicated, but Dive Into HTML 5 has a great article.
None! but you can do it with HTML 5 which is not implimented by all browsers ...
if you really need a video on your page i would recommend flash or silverlight
In a couple of months HTML 5 will be supported by almost all browsers on this planet. If you are planning to run your services in 2010 just use OGG open standard container format. It is unrestricted by software patents and is designed to provide for efficient streaming and manipulation of high quality digital multimedia. It is already supported by Firefox 3.5 and soon all browsers will support it.
Please look at documentation and wiki on http://www.xiph.org/ogg/
A giant GIF. (You could attach a Javascript image preloader script to the movie to load it.)
Microsoft Video Codec VC1

Resources