LiveKit के लिए वर्चुअल बैकग्राउंड और नॉइज़ कैंसलेशन
LiveKit ऐप्स में बैकग्राउंड ब्लर और रिप्लेसमेंट, ब्यूटीफ़िकेशन, ऑटो-फ़्रेमिंग और AI नॉइज़ कैंसलेशन जोड़ें। इफ़ेक्ट्स ट्रैक पब्लिश होने से पहले हर प्रतिभागी के डिवाइस पर चलते हैं — आपके LiveKit सर्वर में कोई बदलाव नहीं।
यह कैसे काम करता है
-
1
ट्रैक को रैप करें
वीडियो: कैमरा ट्रैक पर Effects SDK TrackProcessor सेट करें। ऑडियो: माइक्रोफ़ोन को Audio Effects SDK से गुज़ारें।
-
2
डिवाइस पर प्रोसेस करें
SDK ब्राउज़र या ऐप में फ़्रेम को सेगमेंट और बेहतर करता है या ऑडियो साफ़ करता है — वेब पर WebGPU, WebGL या WebAssembly से।
-
3
हमेशा की तरह पब्लिश करें
LiveKit प्रोसेस किया गया ट्रैक पब्लिश करता है। हर सब्सक्राइबर — इंसान हो या एजेंट — को नतीजा मिलता है।
कोड
LiveKit के track processors लोकल ट्रैक बदलने का स्टैंडर्ड तरीका हैं। सैंपल Web Video Effects SDK के इर्द-गिर्द एक processor बनाता है; Flutter फ़ोर्क Android, iOS और वेब पर LocalVideoTrack में वही इफ़ेक्ट्स जोड़ता है।
- वीडियो: ब्लर, इमेज या वीडियो बैकग्राउंड, ब्यूटीफ़िकेशन, ऑटो-फ़्रेमिंग, कलर करेक्शन, लोअर थर्ड्स
- ऑडियो: नॉइज़ सप्रेशन और कमरे की गूँज हटाना, speed / balanced / quality प्रीसेट
- दोबारा पब्लिश किए बिना कॉल के दौरान इफ़ेक्ट्स बदलें
import { Track, TrackProcessor, VideoProcessorOptions } from 'livekit-client';
import { tsvb } from 'effects-sdk';
export class EffectsVideoProcessor implements TrackProcessor<Track.Kind.Video, VideoProcessorOptions> {
name = 'effects-sdk';
processedTrack?: MediaStreamTrack;
sdk = new tsvb('YOUR_CUSTOMER_ID');
constructor() {
this.sdk.config({ provider: 'webgpu' });
this.sdk.preload();
}
async init(opts: VideoProcessorOptions) {
this.sdk.clear();
this.sdk.useStream(new MediaStream([opts.track]));
this.processedTrack = this.sdk.getStream()?.getVideoTracks()[0];
await new Promise((ready) => (this.sdk.onReady = ready));
this.sdk.run();
}
async restart(opts: VideoProcessorOptions) {
await this.init(opts);
}
async destroy() {
this.sdk.stop();
this.sdk.clear();
this.processedTrack = undefined;
}
}
import { createLocalVideoTrack } from 'livekit-client';
const processor = new EffectsVideoProcessor();
const cameraTrack = await createLocalVideoTrack();
await cameraTrack.setProcessor(processor);
await room.localParticipant.publishTrack(cameraTrack);
// Change effects at any time, without republishing
processor.sdk.setBlur(0.6);
processor.sdk.setBackground('https://example.com/office.jpg');
import { atsvb } from 'audio-effects-sdk';
const sdk = new atsvb('YOUR_CUSTOMER_ID');
sdk.config({ preset: 'speed', sample_rate: 16000 });
sdk.preload();
const mic = await navigator.mediaDevices.getUserMedia({ audio: true });
sdk.useStream(mic);
sdk.onReady = async () => {
sdk.run();
const cleanTrack = sdk.getStream().getAudioTracks()[0];
// Publish the processed track instead of the raw microphone
await room.localParticipant.publishTrack(cleanTrack);
};
// pubspec.yaml: livekit_client from github.com/EffectsSDK/livekit-client-sdk-flutter
// Web only: load tsvb-web.js in index.html and call this first
VideoEffectsSDKExt.initialize('YOUR_CUSTOMER_ID');
final videoTrack = await LocalVideoTrack.createCameraTrack(
CameraCaptureOptions(effectsSdkRequired: true),
);
await videoTrack.start();
// Android and iOS: authorize the track
final status = await videoTrack.auth('YOUR_CUSTOMER_ID');
if (status == AuthStatus.active) {
await videoTrack.setPipelineMode(PipelineMode.blur);
await videoTrack.setBlurPower(0.6);
}
आप LiveKit रूम में क्या जोड़ सकते हैं
सवाल
Flutter पर बना रहे हैं? Flutter इंटीग्रेशन देखें।
क्या यह LiveKit Cloud और सेल्फ़-होस्टेड LiveKit के साथ काम करता है?
हाँ। इफ़ेक्ट्स ट्रैक पब्लिश होने से पहले प्रतिभागी के डिवाइस पर लागू होते हैं, इसलिए सर्वर — LiveKit Cloud हो या आपका अपना — पहले से प्रोसेस किया गया ट्रैक पाता है। सर्वर साइड पर कुछ नहीं बदलता।
यह LiveKit के बिल्ट-इन नॉइज़ फ़िल्टर से कैसे अलग है?
Effects SDK पूरी तरह एंड-यूज़र के डिवाइस पर वेब, iOS, Android और डेस्कटॉप पर चलता है, किसी भी LiveKit डिप्लॉयमेंट के साथ काम करता है, और उसी SDK परिवार में वीडियो इफ़ेक्ट्स भी देता है। अपने यूज़र्स के हार्डवेयर के हिसाब से प्रीसेट (speed, balanced, quality) चुनें।
क्या मैं कॉल के दौरान इफ़ेक्ट्स बदल सकता हूँ?
हाँ। ब्लर, बैकग्राउंड, ब्यूटीफ़िकेशन, फ़्रेमिंग और बाकी इफ़ेक्ट्स ट्रैक को दोबारा बनाए या पब्लिश किए बिना कभी भी बदले जा सकते हैं।
क्या यह LiveKit वॉइस एजेंट के लिए काम करता है?
हाँ। पब्लिश करने से पहले Audio Effects SDK से यूज़र का माइक्रोफ़ोन साफ़ करें, और आपके एजेंट को बैकग्राउंड शोर और कमरे की गूँज के बिना ऑडियो मिलेगा। AI वॉइस एजेंट के लिए नॉइज़ कैंसलेशन देखें।
कौन-से LiveKit SDK सपोर्टेड हैं?
वेब के लिए livekit-client (JavaScript/TypeScript) एक TrackProcessor के ज़रिए, और Android, iOS और वेब पर LiveKit Flutter हमारे Flutter SDK फ़ोर्क के ज़रिए।
LiveKit के साथ इंटीग्रेट कर रहे हैं?
हमें अपने LiveKit सेटअप के बारे में बताएँ — वेब, Flutter या एजेंट। हम इंटीग्रेशन में मदद करते हैं।
शुरू करने के लिए तैयार हैं? Developer Portal खोलें और फ़्री ट्रायल शुरू करें।