BROADCAST SECURITY

Real-Time Deepfake Detection. Before It Reaches Viewers.

A 3-model ensemble analyzing every ingest feed at 6 inferences per second. Facial artifacts, temporal jitter, and frequency fingerprints — scored, alerted, and logged before a single manipulated frame reaches air.

507ns
Score Submit
3
Detection Models
6fps
Analysis Rate
<100ms
Alert Latency
ENSEMBLE ARCHITECTURE

Three Models. One Composite Score.

Each frame is analyzed by three independent detection models. Their weighted outputs merge into a single confidence score between 0.0 (definitively real) and 1.0 (definitively fake).

Facial Artifact Detection

ONNX Neural Network

Convolutional neural network trained on 2.4M synthetic face samples. Detects GAN artifact patterns including checkerboard upsampling, boundary blending seams, eye reflection inconsistencies, and tooth geometry anomalies that survive even high-bitrate encoding.

Composite Weight 0.50

50% of composite score

Temporal Consistency

Frame-to-Frame Analysis

Tracks 68 facial landmarks across consecutive frames, measuring inter-frame jitter that real physiology doesn't produce. Deepfake generators introduce micro-jitter in jaw contour, nasolabial folds, and hairline boundaries that compound across temporal windows.

Composite Weight 0.30

30% of composite score

Frequency Analysis

2D FFT Spectral

Applies 2D Fast Fourier Transform to detect upsampling signatures invisible to the human eye. GAN-generated faces leave distinctive spectral peaks from transposed convolution layers. These frequency-domain fingerprints persist even after compression and rescaling.

Composite Weight 0.20

20% of composite score

Composite Score Formula

score = 0.5 × facial + 0.3 × temporal + 0.2 × frequency

Weights are configurable per-stream via the API. Defaults tuned for broadcast-quality H.264/H.265 ingest.

CONFIDENCE SCORING

Continuous Confidence Gauge

Every analyzed frame produces a composite score. The gauge updates in real time, and alerts fire the moment thresholds are breached.

0.0 0.5 1.0
0.82
COMPOSITE SCORE
Real 0.0 — 0.3

Frame analysis shows no synthetic indicators. All three models agree the content is authentic. No alert dispatched.

Uncertain 0.3 — 0.7

Inconclusive signals. Compression artifacts, unusual lighting, or encoding anomalies may trigger this zone. Monitoring escalated; human review recommended.

Fake Detected 0.7 — 1.0

High-confidence synthetic content detection. Alert fires immediately via Redis pub/sub and webhook. Operator console highlights the affected feed. Frame-level evidence is logged.

ALERT ENGINE

Three Alert Types. Zero Missed Threats.

The alert engine doesn't just fire on a single frame. It detects patterns across time windows, catching sustained attacks and rapid transitions that single-frame analysis would miss.

Threshold Alert

INSTANT

Fires when any single frame produces a composite score above 0.7. Immediate notification. No waiting, no averaging, no delay. If a single frame screams fake, operators know within milliseconds.

trigger: score > 0.7
window: 1 frame
latency: <100ms

Spike Alert

TRANSITION

Detects a score jump greater than 0.3 within a 1-second window. Catches the moment a deepfake splice begins — even if the absolute score hasn't crossed the threshold yet. Critical for detecting mid-stream feed swaps.

trigger: Δscore > 0.3
window: 1 second
latency: <100ms

Sustained Alert

PERSISTENT

Triggers when the composite score remains above the configured threshold for 5+ consecutive seconds. Distinguishes a real deepfake attack from momentary false positives caused by compression glitches or scene transitions.

trigger: score > threshold for 5s
window: 5 seconds (30 frames)
latency: 5s + <100ms

Live Feed Timeline — Alert Markers

0.7 0.3
Threshold Alert
Spike Alert
Sustained Zone

Redis Pub/Sub

Alerts publish to deepfake:alerts:{stream_id} channel. Subscribe from any service in your infrastructure for instant notification.

Webhook Dispatch

Configure HTTPS webhook endpoints per stream. Alert payloads include score, alert type, frame timestamp, and model-level breakdown. Retries with exponential backoff.

EDITORIAL

The Incident That's Coming.

A deepfake of a head of state will appear on a live news broadcast. Not tomorrow — but sooner than the industry is prepared for. When it happens, the network carrying it will face a crisis of credibility that no retraction can undo.

The question is not whether it will happen. The question is whether your infrastructure will catch it before it reaches viewers.

Election cycles. Geopolitical tensions. Financial markets that move on a single screenshot. The incentive to produce a convincing deepfake for live broadcast has never been higher. The tools to create one have never been cheaper. A laptop with a consumer GPU can now generate face-swapped video at 30fps.

Most broadcast infrastructure has zero deepfake detection. None. The ingest pipeline trusts whatever arrives on the SRT/RTMP stream. If it looks like video, it goes to air.

V100 sits in the relay layer. Every frame is scored before it reaches the encoder. Every anomaly is flagged before it reaches the CDN.

This is not a post-hoc forensics tool you run after the damage is done. This is real-time detection at ingest speed, built into the same pipeline that handles your ABR packaging, DRM encryption, and CDN distribution.

API ENDPOINTS

Six Endpoints. Full Control.

Enable deepfake detection on any stream, configure thresholds, retrieve scores, and manage alert webhooks — all through the same V100 API you already use for broadcast.

Score Submission Latency
507ns

The deepfake score submission path runs in 507 nanoseconds. That's the time from model output to indexed, queryable, alertable score. See the full benchmark breakdown.

View Benchmarks
POST /v1/deepfake/enable

Enable deepfake detection on a live stream. Starts the 3-model ensemble on the ingest feed immediately.

// Enable detection on stream
{
  "stream_id": "str_abc123",
  "models": ["facial", "temporal", "frequency"],
  "threshold": 0.7
}
GET /v1/deepfake/score/{stream_id}

Retrieve the current composite score and per-model breakdown for a live stream.

// Response
{
  "composite": 0.82,
  "facial": 0.91,
  "temporal": 0.74,
  "frequency": 0.68,
  "frame_ts": "2026-03-27T14:32:01.847Z"
}
PATCH /v1/deepfake/config/{stream_id}

Update detection thresholds, model weights, and alert sensitivity per stream at runtime.

{
  "threshold": 0.65,
  "weights": { "facial": 0.5, "temporal": 0.3, "frequency": 0.2 },
  "spike_delta": 0.3,
  "sustained_secs": 5
}
GET /v1/deepfake/alerts/{stream_id}

Retrieve the alert history for a stream. Filter by type, time range, and severity.

// Response
{
  "alerts": [
    { "type": "threshold", "score": 0.87, "ts": "..." },
    { "type": "spike", "delta": 0.42, "ts": "..." },
    { "type": "sustained", "duration_s": 7.2, "ts": "..." }
  ]
}
POST /v1/deepfake/webhooks

Register a webhook URL for real-time alert delivery. Supports HMAC-SHA256 signature verification.

{
  "url": "https://ops.example.com/deepfake-alert",
  "stream_ids": ["str_abc123", "str_def456"],
  "alert_types": ["threshold", "spike", "sustained"],
  "secret": "whsec_..."
}
DELETE /v1/deepfake/disable/{stream_id}

Disable deepfake detection on a stream. Stops model inference and alert dispatch. Score history is retained.

// Response
{
  "stream_id": "str_abc123",
  "status": "disabled",
  "total_frames_analyzed": 184320,
  "alerts_fired": 3,
  "history_retained": true
}

Go Deeper

Explore the broadcast platform, benchmarks, and the full blog post on deepfake detection architecture.

Don't Wait for the Incident.

Enable deepfake detection on your broadcast pipeline today. One API call. Three models. Every frame analyzed before it reaches a single viewer.