What you can build
Turn frames into signals your software can use.
Select an analysis mode
Find people, vehicles, equipment or domain-specific classes. Receive confidence scores, structured data and bounding boxes.
01 / 04 · OBJECT DETECTION
busbuscarcarcarcarcarcarcarcam-042 · LIVE- Bus detectedobject detection
- Car detectedobject detection
- Custom eventyour own model
People, vehicles, equipment or your own classes
02 / 04 · SCENE UNDERSTANDING

Illustrative view on a stock photo, not a product screenshot.
Log whether conditions are met, in real time
03 / 04 · VISION-LANGUAGE MODEL

Illustrative view on a stock photo, not a product screenshot.
Ask in plain language, get structured answers
04 / 04 · CUSTOM WORKFLOWS
One detection can reach every channel at once
AI that never gets in the way of the video.
Frames are sampled out-of-band. If inference becomes unavailable, detection pauses and your streams carry on.
You set the interval
Specify frame sample intervals per stream, and control what you spend on inference.
Inference runs locally
Built-in models or your own, on hardware you control. Frames are not retained by default.
Your systems react
VMS, SIEM, dispatch, monitoring and dashboards, through APIs and webhooks.
From zero to a verified detection in under a day.
A clear first path. Prove the integration first, then scale the model, stream count and automation around a measurable outcome.
# Enable object detection on a live stream curl -u admin:•••••• \ -X PUT http://localhost:8087/v1/_defaultServer_/plugin/vif/\ applications/live/streams/camera-01 \ -H 'Content-Type: application/json' \ -d '{ "active": true, "skip_frames": 10 }' ✓ Stream camera-01 is active detector object / RF-DETR output webhook + JSONL + overlay
Put inference where your video already lives.
Start with the all-in-one container and upgrade to split-server without changing your stream configuration.
All-in-one Docker
Ideal for evaluation and lower-volume production.
Split server
A dedicated GPU host, for independent scaling of inference.
Multi-instance
Multiple engines share inference resources, or the other way round.
Air-gapped
Fully on premises. Docker images can be pre-loaded, and all output channels keep working.
Your video, your models, your budget.
Privacy and control
Raw video stays inside your environment while intelligence, alerts and metadata flow out.
- Raw video remains on-site
- Encryption in transit and at rest
- Built for regulated and air-gapped sites
Your own models
Start with built-in models or deploy your own. Swap them without rebuilding your streaming infrastructure.
- Custom and ONNX-compatible models
- Fine-tune for your requirements
- No proprietary AI lock-in
Predictable AI spend
Avoid per-frame pricing, cloud egress fees and unpredictable inference costs.
- Run inference on your infrastructure
- Control sampling and resources
- Scale without runaway cloud costs
Video Intelligence Framework, answered.
What is VIF?
A real-time video intelligence layer for Wowza Streaming Engine. It samples frames from live streams, runs GPU-accelerated inference and returns structured results, without blocking video delivery.
Can it run entirely on premises or air-gapped?
Yes. VIF is fully deployable on premises with zero cloud dependency. All inference runs locally on your hardware, and no video data needs to leave your network.
What AI models does it support?
It ships with RF-DETR, a transformer-based object detection model that recognizes 80 common object classes, with inference latency starting at 10 milliseconds. It also supports custom-trained RF-DETR models, CLIP-based scene matching, VLM integrations and NVIDIA’s Synthetic Video Detector.
If inference goes offline, are my streams affected?
No. VIF is non-blocking by design and operates asynchronously. Detection coverage pauses until the inference service is restored, but ingest, processing and delivery are never impacted.
What happens to video frames after inference?
VIF processes frames in memory and does not retain them by default. The system produces structured event metadata: timestamp, camera ID, detection type, confidence score and bounding box.
How do I manage false positives?
Per-stream controls: confidence thresholds, minimum consecutive frames, tracking persistence and event batching. They can be changed at runtime through the dashboard or the REST API.
