Skip to content
flutter_webrtc · livekit_client · Flutter Web

Flutter 的虚拟背景与降噪

为 Android、iOS 和 Web 上的 Flutter 视频应用添加背景虚化与替换、美颜和自动取景,并为 Flutter Web 添加 AI 降噪——使用基于 flutter_webrtc 的现成插件。

选择你的方案

Flutter Web + flutter_webrtc

  • Video
  • Web

effects_sdk 插件封装了 Web Video Effects SDK:传入来自 flutter_webrtc 的 MediaStream,取回处理后的 MediaStream。

基于 LiveKit 的 Android、iOS 和 Web

  • Video
  • Android
  • iOS
  • Web

LiveKit Flutter SDK 的一个分支为 LocalVideoTrack 加入了 Video Effects SDK。在 Android 和 iOS 上使用原生 SDK,在 Web 上使用 Web SDK。

Flutter Web 的降噪

  • Audio
  • Web

audio_effects_sdk 插件在 flutter_webrtc 的 MediaStream 上运行 Audio Effects SDK:提供 speed、balanced 和 quality 预设的 AI 降噪。

代码

插件遵循 Web SDK 的流程:传入 MediaStream,等待 onReady,运行,然后使用处理后的流。在 LiveKit 分支中,特效是 LocalVideoTrack 的方法。

  • 在 Developer Portal 获取 Customer ID
  • 将 GitHub 上的插件添加到 pubspec.yaml
  • 在 Web 上,于 index.html 中加载 SDK 脚本
  • 运行示例: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();
};

常见问题

在用 LiveKit?请参阅 LiveKit 集成。

Flutter 支持哪些平台?

视频特效:通过 LiveKit Flutter 分支支持 Android、iOS 和 Web,通过 flutter_webrtc 插件支持 Web。音频降噪:通过 audio_effects_sdk 插件支持 Flutter Web。

我在 Android 或 iOS 上使用不含 LiveKit 的 flutter_webrtc,有哪些选择?

通过 platform channel 使用 Android 和 iOS 原生 SDK。LiveKit 分支是很好的参考:它在两个平台上都把原生摄像头管线接入了 Flutter。告诉我们你的方案,我们来协助。

如何为 Flutter 移动应用添加降噪?

Flutter 音频插件目前面向 Web。在 Android 和 iOS 上,请通过 platform channel 调用原生 Audio Effects SDK(Maven ai.effectssdk:audio、Swift Package AudioEffectsSDK)。

有哪些特效可用?

Web 插件提供背景虚化与替换、美颜、自动取景、调色、布局、字幕条和叠加层;LiveKit 分支在移动端提供原生管线的各种模式。

在用 Flutter 开发?

告诉我们你的平台以及采集音视频的方式。我们协助你完成集成。

准备好开始了吗?打开 Developer Portal,开始免费试用。

受 reCAPTCHA 保护。请参阅我们的隐私政策。