getScreenStream(function(screenStream) {
video.srcObject = screenStream;
});
function getScreenStream(callback) {
if (navigator.getDisplayMedia) {
navigator.getDisplayMedia({
video: true
}).then(screenStream => {
callback(screenStream);
});
} else if (navigator.mediaDevices.getDisplayMedia) {
navigator.mediaDevices.getDisplayMedia({
video: true
}).then(screenStream => {
callback(screenStream);
});
} else {
getScreenId(function(error, sourceId, screen_constraints) {
navigator.mediaDevices.getUserMedia(screen_constraints).then(function(screenStream) {
callback(screenStream);
});
});
}
}
No more maintaining this extension; as of 2019. So please use at your own risk.
Google Chrome desktopCapture extension
This chrome extension simply captures content of your screen. It returns
source-id
to callee; and thatsource-id
can be used aschromeMediaSourceId
in WebRTC applications to capture screen's MediaStream.
Description | Download | Install |
---|---|---|
Access/capture screen from any HTTPs domain. | Source Code | Install from Google Web Store |
Note: Following demos works only if you install chrome extension from Google WebStore.
- https://www.webrtc-experiment.com/getScreenId/
- https://www.webrtc-experiment.com/Screen-Capturing/
- https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/ (peer to peer)
- Download ZIP
- Windows users can use WinZip/WinRAR/7Zip however MacOSX/Linux users can use
tar -zxvf desktopCapture.tar.gz
to extract the archive - Add your own domain here at line #17
- LocalHost users can test directly by adding
unpacked extension..
viachrome://extensions/
- Otherwise you can make ZIP of the entire directory and upload at Google dashboard
Here is how to modify allowed-domains
in manifest.json
file:
{
"content_scripts": [ {
"js": [ "content-script.js" ],
"all_frames": true,
"run_at": "document_end",
"matches": ["https://www.domain.com/*"]
}]
}
Learn more about how to publish a chrome extension in Google App Store:
For additional information, click this link.
Download and link Screen-Capturing.js
:
Now you can use getScreenConstraints
method to capture your screen:
getScreenConstraints(function(error, screen_constraints) {
if (error) {
return alert(error);
}
navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
navigator.getUserMedia({
video: screen_constraints
}, function(stream) {
var video = document.querySelector('video');
video.src = URL.createObjectURL(stream);
video.play();
}, function(error) {
alert(JSON.stringify(error, null, '\t'));
});
});
For more Screen-Capturing.js
snippets/help:
getScreenId | Capture Screen on Any Domain! This script is a hack used to support single chrome extension usage on any HTTPs domain.
First step, install this chrome extension:
Now use getScreenId.js
(on any HTTPs page):
<script src="https://cdn.WebRTC-Experiment.com/getScreenId.js"></script>
<video controls autoplay></video>
<script>
getScreenId(function (error, sourceId, screen_constraints) {
navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
navigator.getUserMedia(screen_constraints, function (stream) {
document.querySelector('video').src = URL.createObjectURL(stream);
}, function (error) {
console.error(error);
});
});
</script>
Chrome-Extensions are released under MIT license . Copyright (c) Muaz Khan.