DOCUMENTATION

Getting Started

01. Installation

npm install @qbittco/webrtc-face-recognition
# iOS
cd ios && pod install

Android auto-links. For iOS, ensure your Podfile targets iOS 15.5+.

02. Configuration

Call configureWebRTC() at app startup, before using any features.

Free Tier

import { configureWebRTC } from '@qbittco/webrtc-face-recognition';

configureWebRTC({
  enableFaceDetection: true,
});

Paid Tier (Pro / Business)

configureWebRTC({
  enableFaceDetection: true,
  apiKey: 'wrtc_live_your_key_here',
});

Get your API key at qbittco.com/pricing.

03. Face Detection

import { useFaceDetection, mediaDevices, RTCView } from '@qbittco/webrtc-face-recognition';

function CameraWithFaces() {
  const [stream, setStream] = useState(null);
  const videoTrack = stream?.getVideoTracks()[0] ?? null;

  const { detectionResult, enable } = useFaceDetection(videoTrack);

  useEffect(() => {
    mediaDevices.getUserMedia({ video: { facingMode: 'user' } })
      .then(setStream);
  }, []);

  useEffect(() => {
    if (videoTrack) enable();
  }, [videoTrack]);

  return (
    <View>
      {stream && <RTCView streamURL={stream.toURL()} />}
      {detectionResult?.faces.map(face => (
        // face.bounds, face.landmarks, face.headPose
      ))}
    </View>
  );
}

04. Blink Detection PRO

import { useBlinkDetection } from '@qbittco/webrtc-face-recognition';

const {
  blinkCount,
  lastBlinkTime,
  recentBlinks,
  getBlinkRate,
  enable,
  disable,
} = useBlinkDetection(videoTrack, {
  captureOnBlink: true,   // Capture JPEG on blink
  blinkThreshold: 0.3,    // Eye open probability threshold
});

05. Image Adjustment PRO

import { useImageAdjustment } from '@qbittco/webrtc-face-recognition';

const {
  setExposure,        // -1.0 to 1.0
  setContrast,        // 0.0 to 3.0
  setSaturation,      // 0.0 to 3.0
  setColorTemperature, // -1.0 to 1.0
  enable,
} = useImageAdjustment(videoTrack);

06. API Reference

Hook / Component Tier Description
configureWebRTC() Free Configure SDK features and license key
useFaceDetection() Free* Face detection hook. *Free tier: single face, bounds only
useBlinkDetection() Pro Blink tracking with frame capture and blink rate
useImageAdjustment() Pro Exposure, contrast, saturation, color temperature
FaceDetectionOverlay Pro Customizable face bounding box overlay component
LicenseManager Free Check license state, feature availability

07. Platform Requirements

iOS

  • iOS 15.5+
  • Xcode 14+
  • CocoaPods
  • Physical device for camera features

Android

  • minSdkVersion 24 (Android 7.0+)
  • compileSdkVersion 34+
  • Java 11+
  • Physical device for camera features

Need Help?

Free tier: GitHub Issues. Pro/Business: Email support with priority response.