• Stars
    star
    268
  • Rank 153,144 (Top 4 %)
  • Language
    JavaScript
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

virtual-webcam chrome extension

This is a proof of concept of adding a virtual MediaDevice in a browser extension.

NOTE: You can use it as a regular library, check out cam.html.

Virtual webcam

To use (Chromium):

  • download or clone the repo
  • go to chrome://extensions
  • enable Developer Mode
  • Load unpacked
  • Browse to the folder with the extension (where the manifest.json is)
  • Note:Pages will need to be reloaded after an extension is installed to be able to use it

To use (Firefox):

  • download or clone the repo
  • go to about:debugging#/runtime/this-firefox
  • Click "Load Temporary Add-on..."
  • Browse to the folder with the extension and select the manifest.json
  • Note:Pages will need to be reloaded after an extension is installed to be able to use it

Now any (most) pages using getUserMedia should be able to see a "Chrome Virtual Webcam" device

Should work on Chromium based browsers that support extensions.

Caveats:

  • Some pages use shims or do some checks that might break with the extension
  • For now, the Virtual Webcam takes the default webcam and applies a WebGL filter to it
    • That means that the default webcam can be the last used webcam in the system, if there are several
  • Change filters in js/media-devices.js

Tested with

  • Hangouts
  • Meet
  • Zoom
  • Doesn't seem to work on Duo

Security concerns, what if a bad actor wants to capture and broadcast the stream:

  • The browser will tell the user that they're using a developer extension (a bit weak as security measures go)
  • The webcam light will still turn on. Doesn't solve if the actor is active during a valid video call, though.
  • I guess it's possible -and probably easy- to stream from an extension to another server. Nothing is preventing any extension creator from doing it right now, without a virtual webcam. Just MitM and record.

Ideas:

  • Shader editor
  • Youtube video to replace feed
  • Add ML like FaceMesh or other feature detection systems:
    • add privacy bar over eyes
  • Try to stream from a canvas in a page (shader editor, drawing, etc.) as a MediaSource.

License

This project is licensed under the CC-BY-4.0 License

More Repositories

1

ccapture.js

A library to capture canvas-based animations at a fixed framerate
JavaScript
3,419
star
2

THREE.MeshLine

Mesh replacement for THREE.Line
JavaScript
2,147
star
3

Wagner

Effects composer for three.js
JavaScript
1,041
star
4

looper

Looperepool
JavaScript
954
star
5

polygon-shredder

The polygon shredder that takes many cubes and turns them into confetti
JavaScript
807
star
6

ShaderEditorExtension

Google Chrome DevTools extension to live edit WebGL GLSL shaders
JavaScript
607
star
7

FaceMeshFaceGeometry

FaceMeshFaceGeometry for FaceMesh
JavaScript
381
star
8

WebVR-Extension

Chrome DevTools extension to emulate WebVR API
JavaScript
301
star
9

android-lens-blur-depth-extractor

JavaScript
291
star
10

rstats

rStats
JavaScript
243
star
11

sketch

Explorations on cross-hatching, engraving, and similar non-photorealistic rendering.
JavaScript
222
star
12

codevember-2021

JavaScript
203
star
13

THREE.CubemapToEquirectangular

Export an equirectangular panorama image from a three.js scene
JavaScript
188
star
14

WebAudioExtension

Google Chrome DevTools extension to view and hopefully interact with the routing graph of Web Audio API
JavaScript
183
star
15

ThreeJSEditorExtension

Three.js Editor Extension for Google Chrome
JavaScript
182
star
16

THREE.DecalGeometry

Decals for three.js
JavaScript
149
star
17

fuck-2020

A browser demo to send away 2020.
JavaScript
140
star
18

codevember-2017

JavaScript
139
star
19

GSVPano.js

Google Street View Panorama Util
JavaScript
136
star
20

THREE.AugmentedConsole.js

Augmented methods for console.log
JavaScript
134
star
21

THREE.FBOHelper

FrameBuffer Object inspector for three.js
JavaScript
127
star
22

genuary-2022

JavaScript
114
star
23

cross-hatching

HTML
108
star
24

codevember-2016

JavaScript
90
star
25

cruciform

cruยทciยทform
JavaScript
88
star
26

PanomNom.js

Panorama fetching tools in JavaScript
JavaScript
86
star
27

codevember-2022

JavaScript
83
star
28

spherical-environment-mapping

Spherical Environment Mapping GLSL Shader
JavaScript
79
star
29

CSS3DClouds

CSS 3D Clouds
HTML
78
star
30

Maf.js

Maf
JavaScript
77
star
31

Storyline.js

Storyline - generic sequencer for JavaScript projects
JavaScript
75
star
32

THREE.UpdatableTexture

JavaScript
71
star
33

depth-player

Depth player for Android Lens Blur images
JavaScript
61
star
34

SolariDisplay

A Split-Flap Display with CSS and JavaScript
JavaScript
57
star
35

THREE.EquirectangularToCubemap

Convert an equirectangular panorama into a cubemap texture
JavaScript
57
star
36

ShaderEditor

Live GLSL WebGL Shader Editor
JavaScript
55
star
37

vertex-displacement-noise-3d-webgl-glsl-three-js

JavaScript
47
star
38

webxr-trails

JavaScript
41
star
39

ConcatSoundLoader

Concatenated Sound Files Loader | Typed Arrays and Web Audio API
HTML
35
star
40

perlin-experiments

HTML
33
star
41

sdf-physics

SDF Physics
JavaScript
33
star
42

npr-shading

JavaScript
28
star
43

infinite-gift

Christmas Experiment 2018
JavaScript
28
star
44

THREE.ConstantSpline

Constant-time B-Spline
HTML
27
star
45

serviceworker-svg

ServiceWorker-SVG
HTML
26
star
46

makio-torus

JavaScript
26
star
47

baubles

generative baubles
JavaScript
24
star
48

AugmentedCompileShader.js

Augmented WebGLRenderingContext.prototype.compileShader
JavaScript
24
star
49

css-filters-devtools-extension

CSS Filters DevTools Extension
JavaScript
22
star
50

PerfMeter

JavaScript
22
star
51

FloatingShinyKnot

JavaScript
22
star
52

futurejs-2014

Web Audio presentation for Future JS Barcelona 2014
HTML
22
star
53

chrome-sketchtab

New tab extension with a code editor
JavaScript
21
star
54

THREE.GamepadControls

Camera controls for three.js using the Gamepad API
JavaScript
21
star
55

THREE.Text

THREE.TextMesh for three.js
JavaScript
19
star
56

solskogen-2020

JavaScript
18
star
57

resonate-2015

Workshop contents | Resonate 2015
JavaScript
18
star
58

shadow-mapping

Shadow mapping in GLSL
JavaScript
17
star
59

scotlandjs-2014

JavaScript
16
star
60

snipsnap

SnipSnap: Snippet Snapshot tool
CSS
16
star
61

GLStateCache.js

State cache for WebGL Rendering Context
JavaScript
15
star
62

unmute

UI for Chrome autoplay policy
JavaScript
15
star
63

mira-lab-2013

Contents for MIRA Lab 2013 Workshop
15
star
64

THREE.ShaderTexture

ShaderTexture, a helper to use procedurally generated texture
JavaScript
13
star
65

lines-on-sphere

JavaScript
13
star
66

genuary-2023

JavaScript
12
star
67

explore-with-me

Explore with me - Christmas Experiments 2017
HTML
12
star
68

halloween-2016

JavaScript
10
star
69

shield-vfx

JavaScript
10
star
70

dual-boids

Dual Boids
JavaScript
10
star
71

3dwebfest-2016

Ambient effect for 3DWebFest
JavaScript
9
star
72

halloween-2022

JavaScript
8
star
73

relooper

more loops, old loops, new loops
JavaScript
8
star
74

WebVR-Recorder

WebVR motion recorder and player
JavaScript
7
star
75

BlockyEarth

JavaScript
7
star
76

speech-jammer

Speech Jammer using getUserMedia and Web Audio API
JavaScript
7
star
77

graphicalweb-2016

JavaScript
6
star
78

linkognito

JavaScript
5
star
79

voxel-volume

JavaScript
5
star
80

getting-started-threejs

JavaScript
5
star
81

google-images-view-image-button

Adds a View Image button to Google Images results page
JavaScript
5
star
82

WebVR-Physics

WebVR Physics experiment
JavaScript
5
star
83

FullStackFest-2015

The Road to WebVR - FullStackFest 2015
JavaScript
5
star
84

list-issues

List all issues from Github repos from the logged in user
JavaScript
5
star
85

audio-cover

JavaScript
4
star
86

scotlandjs-2015

ScotlandJS 2015 - Slides and Demo
HTML
4
star
87

bumpy-metaballs

JavaScript
4
star
88

HexViewerExtension

JavaScript
3
star
89

adventofcode2021

JavaScript
3
star
90

powermate-input

Exploration using a Powermate as input device in the browser
JavaScript
3
star
91

wu2021-python

Python
2
star
92

adventofcode2023

JavaScript
2
star
93

floating-shiny-knot

Floating Shiny Knot
JavaScript
2
star
94

canvas-capture

JavaScript
2
star
95

service-worker-require

require() support with service worker
HTML
2
star
96

AdventOfCode2019

Advent of Code 2019
JavaScript
2
star
97

soundcloud-pi

Solution to souncloud challenge
PHP
2
star
98

webxr

JavaScript
2
star
99

nonocache-sw.js

JavaScript
2
star
100

get-into

JavaScript
2
star