Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jitsi/jitsi-meet/llms.txt

Use this file to discover all available pages before exploring further.

Jitsi Meet supports virtual background effects including background blur and full image replacement with built-in or custom images. All background processing runs locally in the browser using TensorFlow.js — your raw video feed never leaves your device. This makes the feature privacy-friendly and independent of any server-side infrastructure.

Background Types

Blur

Applies a strong Gaussian blur to your background, keeping you in sharp focus. Ideal for hiding messy or private spaces without using a custom image.

Virtual Image

Replaces your background with a built-in image (office, beach, etc.) or a custom base64-encoded image you supply. Uses a segmentation model to separate you from your background.

None (Disabled)

Removes any active background effect and reverts to your raw camera feed. Use this to restore full performance if background effects are causing frame rate issues.

Browser Support

Virtual backgrounds require a Chromium-based browser (Chrome 79+, Edge 79+, Brave) or Firefox with WebGL enabled. The feature is not available in Safari or on most mobile browsers due to limitations with WebGL and the required machine learning APIs. The Jitsi Electron desktop app supports virtual backgrounds on all platforms. If a participant’s browser does not support the required APIs, the virtual background option will be hidden from the UI automatically.

IFrame API Control

Use the setVirtualBackground command to programmatically enable or disable a custom image background for the local participant. The command takes a boolean enabled flag and a base64-encoded image string.
const api = new JitsiMeetExternalAPI(domain, options);

// Enable a custom base64 image background
const base64Image = 'data:image/jpeg;base64,/9j/4AAQSkZJRgAB...'; // your base64 image
api.executeCommand('setVirtualBackground', true, base64Image);

// Disable the virtual background and revert to the raw camera feed
api.executeCommand('setVirtualBackground', false, '');
ParameterTypeDescription
enabledbooleantrue to enable the background effect, false to disable it
backgroundImagestringBase64-encoded image string to use as the background. Pass an empty string when disabling.
To open the built-in virtual background picker dialog (where participants can choose blur or a preset image from the UI), use the toggleVirtualBackgroundDialog command instead:
api.executeCommand('toggleVirtualBackgroundDialog');

Enable / Disable in config.js

// config.js

// Set to true to hide the virtual background feature from the UI entirely.
// Useful for low-powered devices or constrained deployments.
disableVirtualBackground: false
  • Virtual backgrounds are computationally expensive. On older or mobile-class hardware, enabling blur can reduce frame rates noticeably.
  • If participants report performance issues, recommend they use a static image background rather than blur, as image replacement is generally lighter on CPU.
  • You can disable the feature for all participants by setting disableVirtualBackground: true in config.js.
  • The segmentation model is downloaded on first use and cached by the browser — the initial load may take a few seconds on slower connections.

Build docs developers (and LLMs) love