Applies effects to the video/audio feeds

Sender-Side Option! (&push)


  • &effect


Example: &effects=7 or &effects=zoom


(no value given)

Shows a "Digital Video Effects" panel when setting up devices

0 | false | off

Disables effects

1 | facetracking

Face tracker


Flip image


Mirror image


Flip + mirror image


Background blur


Virtual Greenscreen


Background replacement



7 | zoom




Face tracking


Face tracking

11 | anon

Anonymous face mask


New experimental background blur effect; it's not supported by most browsers/systems and its in origin trial


This is on by default when using a basic push link outside of a room.

You can pre-select the digital video effect by adding &effects=X (see Options above) to a guest/push link.

The guest can change the digital video effect dynamically via the video settings panel if you have added &effects to the guest's URL.

You can also pre-select the effect value by adding &effectvalue to the URL. ie: the amount of blur.

Greenscreen performance

&effects=4 enables a virtual Greenscreen on the publisher side.

Green screen doesn't require SIMD support to work, although it won't work as well without it on. There's a little warning info icon (!) if SIMD is not enabled.

Please do enable Webassembly-SIMD support under chrome://flags/ if you'd like to see a large reduction in CPU load when using this feature.

Important Note for &effects=1

&effects=1 requires the use of the Chromium experimental face detection API, as I'm using the built-in browser face-tracking model for this. You can enable the API flag here: chrome://flags/#enable-experimental-web-platform-features My hope is that this feature will eventually be enabled by default within Chromium, as loading a large ML model to do face detection otherwise is a bit heavy; you may need to enable this within the OBS CLI if wishing to use it there?


Added &effects=8, which might be useful if using a Camlink or simple HDMI capture device and &record mode. The current &record mode doesn't seem to always scale down the video before recording (browser issue it seems), so local file recordings might be 4K in size, despite the target resolution being set much lower. &effects=8 will use a canvas to first resize the video though, and then recordings will be based on that, making smaller recording sizes possible. (You could also use &effects=7, which then provides digital zooming controls and is otherwise the same thing).

This &effects=8 mode might also be helpful in solving issues with cameras disconnecting or having their frame rate change while recording, causing issues with the recording. The canvas acts as a reliable middle man between the camera and output video stream, so if the camera's input stream fails, the recording stream will not be impacted, other than perhaps skipping some frames. The canvas is sensitive to CPU load or browser throttling though, so frame rates may fluctuate more often when using it, so I can't suggest using it unless the guest/user is known to have a problematic camera.

&effects=7 (Zoom)

&effectvalue=1.2 will now work with &zoom (&effects=7), so you can trigger the camera to digitally zoom in on load.


Last updated