voxera_effects_kit

DeepAR face filters for a Voxera live room. The processor edits camera frames in place, so the local preview and the published video both show the filter.

DeepAR starts the first time someone picks a filter. A publisher who never opens one is not counted as a DeepAR user.

The license key and the effect list come from the Voxera engine (GET /api/v1/effects/deepar). This package does not talk to DeepAR's website.

Wire it

VoxeraEffectsProcessor? processor;

VoxeraLiveRoomConfig(
  buildVideoEffectsProcessor: (ctx) {
    if (ctx.provider != 'deepar') return null;
    processor ??= VoxeraEffectsProcessor.create(
      hideHeavy: ctx.hideHeavyEffects,
    );
    final raw = ctx.deepArProvisioning.value;
    if (raw != null) processor!.updateConfig(VoxeraConfig.fromJson(raw));
    return processor;
  },
  onEffectsTap: (context) {
    final current = processor;
    if (current != null) VoxeraEffectsSheet.show(context, processor: current);
  },
);

Dispose processor when the room ends. The live kit calls destroy on every camera flip; that only detaches the track.

Native setup

Android resolves ai.deepar.ar:DeepAR:5.6.20 from https://sdk.developer.deepar.ai/maven-android-repository/releases/. Add that Maven repository to the app's android/build.gradle if the plugin repository is not picked up.

iOS uses the DeepAR pod at 5.6.20, and the same WebRTC binary as flutter_webrtc 1.6.2 (150.7871.01).

The DeepAR key must be created for this app's package name and bundle id. A key for a different app id does not run.

Libraries

voxera_effects_kit