Raven Effects processes a publisher's camera before it's sent anywhere. You think about Raven Effects — never about WebGL, RTP, or which transport carries the video underneath.
Camera
↓
Raven Video Track
↓
Raven Effects Pipeline
↓
Processed Video Track
↓
Raven RTC / Live Streaming
↓
Remote Participants / Viewers
Effects run once, on the publisher's machine. A remote participant or a live-stream viewer receives the already-processed video — nothing re-runs per viewer, and viewers never need the Effects SDK themselves.
The shapes
EffectsPipeline an ordered, mutable list of effects
├── filters brightness, contrast, saturation, exposure,
│ temperature, tint, grayscale, sepia, blur
├── presets vivid, warm, cool, cinematic, vintage —
│ pure compositions of the filters above
└── beauty.smooth() basic whole-frame smoothing (production)
One pipeline attaches to one camera track, on Raven RTC or Raven Live Streaming — the same class either way, since a live stream's camera is an ordinary RTC track underneath.
Quickstart
import { createRTCClient } from '@corvidhq/rtc';
import { effects } from '@corvidhq/effects';
const client = createRTCClient({ token, endpoint, iceServers });
const room = await client.join('room-123');
const camera = await room.enableCamera();
const pipeline = effects.createPipeline();
pipeline.applyPreset(effects.presets.cinematic);
await camera.attachEffects(pipeline);
// camera.detachEffects() reverts to the unmodified track at any time.See Quickstart for the full walkthrough, including what happens when a browser can't run the pipeline at all.
Supported platforms
| Capability | Web | React | React Native | Flutter |
|---|---|---|---|---|
| Filters & presets (configuration) | Production | Production | Production | Production |
| Pipeline lifecycle (add/remove/update/reorder/enable/disable/clear) | Production | Production | Production | Production |
RTC / Live Streaming integration (camera.attachEffects()) | Production | Production | Planned | Planned |
| Face detection, background blur/replacement, AR overlays | Planned | Planned | Planned | Planned |
"Configuration" and "integration" are listed separately on purpose: you can build and validate a pipeline in JS/Dart on every platform today — what's missing on React Native and Flutter is a native engine to run it against a live camera track. See React Native and Flutter for exactly what that means in practice.
Pages in this section
- Quickstart
- Filters — every basic filter, with its parameter range
- Presets
- Pipeline — lifecycle, events, error handling
- RTC Integration
- Live Streaming Integration
- React
- React Native
- Flutter
- Performance
- Troubleshooting
- API Reference
Related
- RTC → Audio & Video — the camera/microphone model effects attach to.
- Live Streaming → Filters & Effects — the same pipeline, applied to a stream's host.