Video Effects SDK: virtual background, blur and auto-framing
Add real-time background effects, beautification and color correction to your video app. Runs on the user's device — no RTX GPU, no servers, no video leaves the device.
Free trial · Integration help from our team
Runs on
- Web
- iOS
- Android
- Windows
- macOS
- Electron
- Flutter
Works with
- WebRTC
- LiveKit
- LiveKit Flutter
- Zoom Video SDK
- Cloudflare Calls
Effects your users already expect
Zoom, Google Meet and Microsoft Teams ship them. Add the same to your product in days, not months.
Virtual background & blur
Auto-framing
Beautification
AI color correction & grading
Video denoise & low light
Portrait lighting
Overlays & lower thirds
More on request
Also in the Web and Electron SDK
- 3D head avatars
- Chroma key
- LUT color filters
- Stickers and emoji reactions
- Screen capture as a background
- VideoFrame-in, VideoFrame-out processing
See the effects in action
Real webcams, real rooms. Then try the live demo on your own camera.
Integrate in hours
The same small API on every platform: authorize with your Customer ID, create a pipeline, enable effects, process frames or a stream.
import { tsvb } from 'effects-sdk';
const sdk = new tsvb('YOUR_CUSTOMER_ID');
sdk.preload();
sdk.onReady = () => {
sdk.useStream(cameraStream);
sdk.run();
sdk.setBlur(0.6);
video.srcObject = sdk.getStream();
};
EffectsSDK.initialize(context, yourCustomerId) { status ->
if (status == EffectsSDKStatus.ACTIVE) {
val sdkFactory = EffectsSDK.createSDKFactory()
val pipeline = sdkFactory.createCameraPipeline(
context = context,
mode = PipelineMode.BLUR,
blurPower = 0.7f
)
pipeline.setOutputSurface(surface)
pipeline.startPipeline()
}
}
import TSVB
let sdkFactory = SDKFactory()
let authResult = try await sdkFactory.auth(customerID: "CUSTOMER_ID")
guard authResult.status == .active else { return }
let frameFactory = sdkFactory.newFrameFactory()
let pipeline = sdkFactory.newPipeline()
pipeline.enableBlurBackground(power: 0.6)
::tsvb::ISDKFactory* factory = createSDKFactory();
::tsvb::IFrameFactory* frameFactory = factory->createFrameFactory();
::tsvb::IPipeline* pipeline = factory->createPipeline();
pipeline->enableBlurBackground(0.6f);
::tsvb::IFrame* frame = frameFactory->createBGRA(data, bytesPerLine, width, height, false);
::tsvb::IFrame* result = pipeline->process(frame, nullptr);
Platforms and packages
| Platform | Requirements | Install | Links |
|---|---|---|---|
| Web | Current Chrome, Safari, Firefox, Edge, Opera; WebGPU, WebGL or WASM | npm i effects-sdk |
|
| iOS | iOS 13+ | Swift Package or xcframework |
|
| Android | Android 5.0 (API 21)+ | ai.effectssdk:video (Maven) |
|
| Windows | Windows 10/11 x64; x86 apps supported | C++ SDK |
|
| macOS | macOS 11.0+, Apple silicon and Intel | C++ SDK |
|
| Electron | Windows, macOS, Linux | Native module + JS API |
|
| Flutter | Flutter Web with flutter_webrtc | Flutter plugin |
Native SDK details
| Platform | Language | Frame formats |
|---|---|---|
| Windows | C++ | BGRA, NV12 |
| macOS | C++ | BGRA, NV12 |
| iOS | C++ with Objective-C wrapper + Swift API | BGRA, RGBA, NV12 |
| Android | C++ with Kotlin wrapper | RGB bitmap, YUV420 |
| Web | JavaScript + WebAssembly | MediaStream |
Built to ship in production
Cross-platform
Quality and speed
GPU accelerated
What your users get
Video calls are the default way to meet, for work and for personal life. How people look and what their room shows matters.
Brand recognition
Professional look anywhere
Confidence on camera
Privacy
Session-based pricing
One session is one SDK initialization, however long it lasts and however many effects run. No user data is collected.
Free trial
$0
7 days with every feature on your platforms. Start in the Developer Portal, no sales call.
Startup
from $50
Pay as you go by sessions, with automatic tracking and card payment. Price depends on volume, platforms and features.
Enterprise
Custom
The lowest session price, a 1-month trial, on-premises deployment and an account manager.
Questions
Something else? Ask us below.
Does it work with x86 applications?
Yes. x86 applications are supported on 64-bit Windows: the x86 SDK runs ML inference in a 64-bit helper process. We ship both x64 and x86 libraries in the SDK package.
How fast is it?
It depends on the frame size and format, the inference backend (GPU or CPU), the hardware and what else your app processes. On a typical laptop the Video SDK processes Full HD video at up to 50 FPS.
How long does the SDK take to initialize?
Usually a few seconds, depending on the platform, inference engine and hardware. On the web, models are downloaded on first use and then cached. Start loading early (for example, call preload() before the camera turns on) and enable the effect when the SDK reports it is ready.
Can I pass GPU frames as input?
Frames are processed on the GPU: DirectX 11 on Windows, Metal on macOS and iOS, WebGPU or WebGL in browsers, with a CPU fallback. On iOS and macOS you can pass a CVPixelBuffer directly; a Metal-compatible buffer avoids extra copies. If you need another GPU input path, contact us.
How do you deliver updates?
Each release is published with release notes on the Release notes page and on GitHub. Web SDKs are on npm (effects-sdk and audio-effects-sdk); native SDKs ship as packages for each platform. Model files are versioned, so clients on the previous version keep working while you upgrade.
Do you help with integration?
Yes. We help your developers choose the best integration path for your stack and answer questions as you go. Usually we open a shared chat with your team for quick answers. If you have no developer for the integration, we can do it for a fixed price.
Can you customize the SDK?
Yes. We adapt the SDK to your requirements, usually on a time-and-materials basis.
Do you plan to add new features?
Yes. Recent releases added video noise suppression, portrait lighting, avatars, custom lower thirds and captions, and Studio Sound in the Audio SDK. Follow the release notes and tell us which features you need next.
Still have questions?
Tell us about your product and platforms. Our team will get back to you and can help with the integration.
Ready to build? Open the Developer Portal and start a free trial.