Skip to content
flutter_webrtc · livekit_client · Flutter Web

Virtual background and noise cancellation for Flutter

Add background blur and replacement, beautification and auto-framing to Flutter video apps on Android, iOS and the web, and AI noise cancellation to Flutter Web — with ready plugins built on flutter_webrtc.

Pick your setup

Flutter Web + flutter_webrtc

  • Video
  • Web

The effects_sdk plugin wraps the Web Video Effects SDK: give it a MediaStream from flutter_webrtc, get a processed MediaStream back.

Android, iOS and web with LiveKit

  • Video
  • Android
  • iOS
  • Web

A fork of the LiveKit Flutter SDK adds the Video Effects SDK to LocalVideoTrack. On Android and iOS it uses the native SDKs, on the web the Web SDK.

Noise cancellation for Flutter Web

  • Audio
  • Web

The audio_effects_sdk plugin runs the Audio Effects SDK on a flutter_webrtc MediaStream: AI noise suppression with speed, balanced and quality presets.

Code

The plugins follow the Web SDK flow: put a MediaStream in, wait for onReady, run, and use the processed stream. In the LiveKit fork the effects are methods of LocalVideoTrack.

  • Get a Customer ID in the Developer Portal
  • Add the plugin from GitHub to pubspec.yaml
  • On the web, load the SDK script in index.html
  • Run the example: flutter run --dart-define=CUSTOMER_ID=…
// web/index.html: <script src="https://effectssdk.ai/sdk/web/{VERSION}/tsvb-web.js"></script>
// pubspec.yaml:   effects_sdk: { git: { url: https://github.com/EffectsSDK/flutter-plugin.git } }

final effectsSDK = EffectsSDK('YOUR_CUSTOMER_ID');
effectsSDK.useStream(cameraStream);
final outputStream = effectsSDK.getStream();

effectsSDK.onReady = () {
  effectsSDK.run();
  effectsSDK.setBlur(60);
};
// pubspec.yaml: livekit_client from github.com/EffectsSDK/livekit-client-sdk-flutter

final videoTrack = await LocalVideoTrack.createCameraTrack(
  CameraCaptureOptions(effectsSdkRequired: true),
);
await videoTrack.start();

final status = await videoTrack.auth('YOUR_CUSTOMER_ID');
if (status == AuthStatus.active) {
  await videoTrack.setPipelineMode(PipelineMode.blur);
  await videoTrack.setBlurPower(0.6);
}
// web/index.html: <script crossorigin="anonymous" src="https://effectssdk.ai/sdk/audio/dev/{VERSION}/atsvb-web.js"></script>
// pubspec.yaml:   audio_effects_sdk: { git: { url: https://github.com/EffectsSDK/audio-flutter-wrapper } }

final audioSDK = AudioEffectsSDK('YOUR_CUSTOMER_ID');
audioSDK.useStream(micStream);

audioSDK.onReady = () {
  audioSDK.run();
  final cleanStream = audioSDK.getStream();
};

Questions

Using LiveKit? See LiveKit integration.

Which platforms are supported in Flutter?

Video effects: Android, iOS and the web through the LiveKit Flutter fork, and the web through the flutter_webrtc plugin. Audio noise cancellation: Flutter Web through the audio_effects_sdk plugin.

I use flutter_webrtc without LiveKit on Android or iOS. What are my options?

Use the native Android and iOS SDKs through a platform channel. The LiveKit fork is a good reference: it connects the native camera pipelines to Flutter on both platforms. Tell us about your setup and we will help.

How do I add noise cancellation to a Flutter mobile app?

The Flutter audio plugin currently targets the web. On Android and iOS, call the native Audio Effects SDK (Maven ai.effectssdk:audio, Swift Package AudioEffectsSDK) through a platform channel.

Which effects are available?

Background blur and replacement, beautification, auto-framing, color correction, layouts, lower thirds and overlays in the web plugin; the LiveKit fork exposes the native pipeline modes on mobile.

Building with Flutter?

Tell us your platforms and how you capture video and audio. We help with the integration.

Ready to build? Open the Developer Portal and start a free trial.

Protected by reCAPTCHA. See our privacy policy.