C
Cyrano Security
15 min read
The honest 2026 landscape

Open source computer vision security camera projects all share one assumption. Half the real world breaks it.

Read any roundup of open source computer vision security camera projects in 2026 and you will see the same list: Frigate, Shinobi, ZoneMinder, Viseron, Scrypted, Kerberos.io, DeepCamera. The writeups compare UI, AI accuracy, hardware support, Home Assistant depth, and GitHub stars. None of them names the one input assumption every project inherits: per-camera RTSP or ONVIF. The moment the cameras are wired to a DVR over coax instead of IP, the entire category becomes unavailable. This page walks through the projects honestly, explains where the ingest assumption came from, and describes the alternative ingress (reading the DVR HDMI composite on-device) that the open source ecosystem never shipped at production quality.

See an edge AI running on an existing DVR, no RTSP required
4.9from 50+ property installs
Runs on existing DVR and NVR hardware from Swann, Lorex, Dahua, Hikvision, Night Owl, Samsung, and OEM rebrands
Reads the 1920x1080 @ 30fps HDMI composite the DVR already paints for its wall monitor
Per-camera RTSP, ONVIF, or vendor cloud not required
Up to 25 camera feeds per edge unit, human / vehicle / package classification on-device
Median on-site install under 10 minutes

The seven projects every 2026 roundup converges on

Drop the Hacker News threads, the r/selfhosted wiki, the lensviewing and simplehomelab lists, and the Home Assistant forums into a pile. Seven names come out on top. Different angles of coverage, different stars, but the same short list keeps appearing.

Frigate

The popular one. AI-first self-hosted NVR, Coral TPU acceleration, deep Home Assistant integration. Expects RTSP per camera in its config.

ZoneMinder

The 20-year incumbent. Perl plus PHP plus C++, shared memory IPC, wide camera support. Pixel-diff motion by default, YOLO through a plugin.

Shinobi

Node.js NVR launched around 2017 as the modern alternative to ZoneMinder. Cleaner UI. Plugin system wraps TensorFlow and YOLO.

Viseron

Python-based, flexible detector and tracker pipeline. CodeProject.AI, DeepStack, or YOLO depending on how you wire it.

Scrypted

TypeScript NVR with a strong HomeKit Secure Video bridge. Good for Apple homes. Still RTSP or ONVIF on the input side.

Kerberos.io

Containerized pipeline split into agent, machinery, and hub. Scales across sites better than most open source options. IP cameras only.

DeepCamera

2026 pivot toward local VLMs (Qwen, DeepSeek, SmolVLM, LLaVA, YOLO26). Telegram, Discord, Slack bots. Still assumes IP camera ingest.

Shared input assumption

rtsp://user:pass@camera-ip:554/Streaming/Channels/101
ONVIF Profile S / Profile T
rtsp://admin:admin@192.168.1.108/cam/realmonitor?channel=1
HTTP MJPEG fallback
rtsp://camera.local:554/live/ch0
Per-camera credentials required
Per-camera network reachability required

Every project above, regardless of language or UI, sits behind one of these input URIs. Change the NVR software and you still need the same thing out of the cameras: an IP stream per camera.

Why every open source project made the same assumption

Open source NVR development grew out of the self-hosted and homelab community. That community bought consumer IP cameras (Reolink, Amcrest, UniFi, Axis, Dahua IP-first lines) that shipped with RTSP out of the box. Frigate was written for Reolink-class cameras. Shinobi and ZoneMinder went deeper on ONVIF and generic RTSP because that is what the installed base of their users looked like. There was never a product reason for any of these projects to consider video on analog coax, HD-TVI, HD-CVI, or AHD. The users did not have those cameras.

The installed camera base in multifamily housing, small commercial, gas stations, self-storage, and mechanic shops looks nothing like a homelab. Most of those sites still have analog or HD-TVI cameras wired on coax to a DVR that was installed in 2014. The cameras work. The DVR records. Nobody has touched the firmware in a decade and nobody remembers the admin password. You cannot point Frigate at those cameras. You cannot point Shinobi at them either. They do not produce RTSP.

The anchor fact no open source project ships

Every DVR with HDMI OUT paints a standardized 1920x1080 composite, whether or not you have RTSP access

The DVR's HDMI OUT port was designed to drive a wall monitor for a security guard. It paints a 1920x1080 raster at approximately 30 frames per second, tiled into a 4x4 grid for 16 cameras (480x270 per tile) or a 5x5 grid for 25 cameras (384x216 per tile). It paints this signal whether or not RTSP is exposed, whether or not the vendor cloud is reachable, whether or not anyone remembers the admin password. Cyrano reads that signal, parses the DVR make and firmware from the HDMI EDID handshake, loads the right per-vendor overlay template (to mask the clock, the channel bugs, the per-tile name strip), slices the composite in memory, and runs on-device human, vehicle, and package classification on each tile.

No open source CV security camera project ships this ingest path at production quality. The homelab community has posted hobby HDMI-capture demos on a Raspberry Pi, but none of them handle EDID-based auto-detection, per-vendor overlay templates, NPU inference on tile slices, or tile-drop events (when a camera goes offline and the DVR repaints the grid). That is the gap Cyrano fills.

Two ingest paths, drawn out

The SERP for “open source computer vision security camera projects” implicitly assumes the top path. Most deployments in the real world require the bottom path. The projects exist for the top path. The device exists for the bottom path.

Open source RTSP ingest (what Frigate, Shinobi, ZoneMinder assume)

IP cameraRouter / switchOpen source NVRDetectorOperatorRTSP stream over LANper-camera credentials + reachabilitydecode + detector invoke (per camera)bounding boxes + classalert via HA / MQTT / Telegram

DVR HDMI ingest (what Cyrano does, what no open source project ships)

Analog / HD-TVI cameraDVRHDMI OUT compositeCyrano edge AIWhatsApp on-callcoax video (1 Vpp)paint 1920x1080 composite @ 30fpsEDID handshake + tile sliceon-device human / vehicle / package classifier240KB event envelope on HIGH threat

Existing hardware on the left, alerts on the right

If you squint, this looks like what an open source NVR does. The difference is the left column. Nothing Cyrano needs requires the cameras or the DVR to speak IP. The HDMI signal is the contract.

Existing DVR hardware -> Cyrano -> operator

Analog / HD-TVI cameras
Vendor DVR
HDMI OUT composite
Cyrano edge AI
WhatsApp on-call
Wall monitor
Portfolio dashboard
0Composite width, DVR HDMI OUT (px)
0FPS read per composite
0Max cameras per Cyrano unit
0Per-camera RTSP URLs needed

Boot log on a live Dahua DVR with per-camera RTSP disabled

This is a real boot sequence from a Cyrano unit plugged into a Dahua XVR5116HS-I3 where the vendor firmware refuses per-camera RTSP. Frigate cannot ingest this DVR. Shinobi cannot ingest this DVR. ZoneMinder cannot ingest this DVR. The HDMI composite is available unchanged. Note the line where the RTSP probe refuses on all 16 cameras and the ingest path falls through to HDMI.

boot log: cyrano probe on dahua xvr5116hs-i3, 16 cameras

The important line for this page is [rtsp] per-camera rtsp probe: 16/16 refused. This is the state every open source CV security camera project fails silently at. Cyrano does not fail there because it never needed RTSP in the first place.

Honest comparison: open source CV projects vs DVR HDMI ingest

Pick a property you actually operate and walk down this table. If the cameras are IP-native and you enjoy running servers, Frigate or one of its cousins is genuinely good. If the cameras are on coax and you want alerts by next Tuesday, the table reads differently.

FeatureOpen source CV project (Frigate et al.)Cyrano (HDMI ingest)
Required inputRTSP or ONVIF per cameraHDMI OUT composite from the DVR
Works with analog / HD-TVI / HD-CVI / AHD camerasNot directly (needs an IP encoder in front)Yes, through the DVR that is already there
Works when the DVR refuses per-camera RTSPNoYes
Requires camera credentials and per-camera networkYesNo
Requires a server you build, tune, and maintainYesNo (ships as an edge device)
Hardware you sourceNVR server, GPU or Coral TPU, storageOne edge unit per 25 feeds
Per-vendor DVR templatesNoneSwann, Lorex, Dahua, Hikvision, Night Owl, Samsung, Q-See, ProEnforcer
EDID-based auto-detection of DVR firmwareNot applicable (does not read HDMI)Yes
Tile-drop handling when a camera goes offline and the grid repaintsNot applicableYes
Human / vehicle / package classifierYes, you configure a model per installYes, ships as default
LicensingOpen source, self-hosted, unpaidPaid device plus subscription
Time to first real alertA weekend of homelab work, more at scaleUnder 10 minutes on site

What it actually takes to stand up an open source CV stack

The roundup pages do not walk through this, but it is the honest comparison. Here is the work implied when a SERP page tells you to just install Frigate or ZoneMinder and go.

1

Stage 1: Inventory cameras and confirm RTSP

Walk every camera. Confirm each is IP-native. Pull a working RTSP URL per camera with ffprobe or VLC. If any cameras are on coax, they are out of scope for the open source category entirely. In practice, this stage is where half of commercial installs stop.

2

Stage 2: Source hardware

NVR server (x86 box with enough PCIe for a Coral TPU or a capable GPU), storage for recording, UPS. Frigate's recommended hardware docs call out specific SKUs; budget is typically a low-thousand-dollar server build before storage.

3

Stage 3: Stand up the NVR and Home Assistant

Install the chosen NVR (Frigate, Shinobi, ZoneMinder, Viseron, Scrypted). Install Home Assistant or equivalent for the alert pipeline. Wire MQTT. Configure Coral TPU. Configure detector thresholds per camera. This is typically a full weekend if you have done it before.

4

Stage 4: Tune false positives

Every camera position has its own false positive profile (tree branches, headlights, porch shadows). Tune motion masks and detector thresholds per camera. Operators will ignore alerts unless this is done, which means the detection stack is effectively offline.

5

Stage 5: Ongoing maintenance

OS updates, NVR version upgrades (each one re-tunes detector behavior), storage rotation, camera firmware changes that move RTSP paths, Home Assistant breaking changes, replacement of the NVR server when it dies. This is a real, recurring commitment.

When the open source stack is the right call anyway

This page is not anti open source. Frigate in particular is a genuinely good piece of software, and the ZoneMinder community has kept a twenty-year-old codebase alive longer than a lot of commercial products. There are real scenarios where that stack is the honest answer.

Prefer open source CV NVR when

  • All your cameras are IP-native (Reolink, UniFi, Axis, Amcrest, Hikvision IP-series) and you have admin credentials for each one.
  • You run a homelab, enjoy operating servers, and want total control over the detector, the retention, the recording format, and the alert pipeline.
  • Your deployment is a single site, not a portfolio, so per-site engineering cost is bounded.
  • You already run Home Assistant and want the NVR to be a first-class citizen in that graph.
  • You have a Coral TPU or GPU server and the willingness to keep its OS and drivers current.

Prefer the HDMI ingest path when any of these are true instead.

Prefer DVR HDMI ingest (Cyrano) when

  • Any of the cameras are analog, HD-TVI, HD-CVI, or AHD on coax to a DVR. The open source category does not ingest this.
  • The DVR refuses per-camera RTSP or you have lost the admin password. HDMI does not care.
  • You run a portfolio and engineering time per site is the bottleneck, not licensing cost.
  • Operator time is expensive and a false-positive-tuned classifier matters more than detector configurability.
  • You want a flat monthly cost rather than a server, a TPU, storage, and a weekend of tuning per site.

The honest read

The open source computer vision security camera ecosystem in 2026 is strong where it has always been strong: IP-native homelab and enthusiast deployments. Frigate, Shinobi, ZoneMinder, Viseron, Scrypted, Kerberos.io, and DeepCamera are all better-than-ever versions of what they were meant to be. The roundup articles are not wrong to compare them.

What the roundups do not say is that the entire category is RTSP-shaped. The moment you walk onto a real commercial or multifamily site and look at the cameras, the category gets a lot smaller. Cameras on coax to a vendor DVR are the default, not the edge case, and the open source projects have nothing to offer those sites. That gap is not a failing of the open source world; it is simply a product of where the community came from. It also explains why Cyrano exists. The HDMI OUT composite is the ingest primitive the category skipped, and picking it up as the input side of a real edge AI turns out to be the difference between “install Frigate and good luck” and a 10 minute on-site install.

If your site is IP-native, go use Frigate; it is genuinely good. If your site is on a DVR, open source will not help. That is the honest version of this SERP.

See edge AI running on an existing DVR, no RTSP required

Fifteen minutes. We run Cyrano against your DVR over HDMI (or ours), probe it, detect the firmware, slice the tiles, and fire real human / vehicle / package alerts to WhatsApp. No code to install.

Book a call

Frequently asked questions

What are the main open source computer vision security camera projects in 2026?

The active, widely-used list in 2026 is: Frigate (the most popular AI-first self-hosted NVR, Coral TPU acceleration, Home Assistant integration), ZoneMinder (the 20-plus-year incumbent, Perl plus PHP, shared memory IPC), Shinobi (Node.js NVR launched around 2017, cleaner UI than ZoneMinder), Viseron (Python, flexible detector and tracker pipeline), Scrypted (TypeScript, strong HomeKit Secure Video bridge), Kerberos.io (containerized pipeline of agent, machinery, hub), and DeepCamera (LLM-driven agent with local VLMs like Qwen and SmolVLM). MotionEye and iSpy/AgentDVR still show up on older lists but MotionEye is unmaintained and AgentDVR is only partially open source. Every project above inherits the same input assumption: it expects per-camera access over RTSP or ONVIF.

Why does every open source CV security camera project require RTSP or ONVIF?

Because they all grew out of the self-hosted NVR community, which grew out of the Home Assistant and homelab worlds, where the typical camera is a consumer IP cam (Reolink, Amcrest, Dahua, Hikvision IP-first lines, UniFi Protect). Those cameras expose RTSP directly, so early open source NVRs standardized on RTSP ingest. Frigate's camera config expects an RTSP URL per camera. Shinobi, ZoneMinder, Viseron, and Scrypted all expect the same. ONVIF is the industry standardization of that pattern. The category never had a reason to consider non-IP inputs because the community it served already had IP cameras. The fact that every roundup compares these projects on UI and AI accuracy but ignores the ingest assumption is how the category blind spot became invisible.

What is wrong with RTSP ingest for a real commercial or multifamily deployment?

Three things that do not show up in homelab reviews. First, a large share of installed cameras in the US multifamily, small commercial, and gas station market are not IP cameras. They are analog, HD-TVI, HD-CVI, or AHD cameras wired over coax to a DVR. There is no RTSP to point Frigate at because the cameras never produced RTSP in the first place. Second, even when the NVR is IP-based, many vendor NVRs (Swann, Lorex, Night Owl, Q-See, Zmodo, Samsung SDR-series) expose RTSP on the NVR itself but not for individual cameras, or require firmware logins that the property has lost years ago. Third, per-camera RTSP access means per-camera credentials, per-camera network reachability, per-camera firmware compatibility. A 16-camera install becomes 16 separate integration problems. None of this is visible in a roundup that compares detectors on a matched dataset.

Is there an open source CV security camera project that reads HDMI output from a DVR?

Not at production quality, and not maintained. The homelab community has posted hobby projects that plug a USB HDMI capture card into a Raspberry Pi, read the DVR's wall-monitor output, run OpenCV motion detection on it, and post alerts to a Telegram bot. These work for a demo on one camera. They break the moment the DVR repaints its UI in firmware (the time overlay moves, the channel bug shifts, the tile grid changes from 4x4 to 3x3 when a camera drops offline). None of them ship per-DVR-vendor overlay templates, EDID-based auto-detection, NPU-accelerated inference on the composite tiles, or a disciplined event pipeline. Cyrano's HDMI ingest is the only implementation at that tier of reliability today. Short version: the open source category did not build this, and that is the gap this page is about.

Does reading the DVR HDMI output give the same image quality as RTSP from the camera?

No, and it does not need to for detection. The HDMI composite is 1920x1080 for almost every DVR sold in the last decade, which gives 480x270 per tile on a 4x4 grid (16 cameras) or 384x216 per tile on a 5x5 grid (25 cameras). A native camera RTSP stream might be 1920x1080 or 3840x2160 per camera. For forensic zoom, the native stream is higher resolution. For live human, vehicle, and package detection, 480x270 per tile is more than enough. The YOLO and ViT models used for this class of classification work fine at that input size. Detection is not the constraint; pipeline reliability and install time are.

If Frigate and the others are free and Cyrano is paid, when is paid actually the right choice?

Paid is the right choice when total cost of ownership matters, which is almost always true outside a homelab. Frigate requires a server you build and maintain, per-camera RTSP access you negotiate with the DVR vendor, a Coral TPU or capable GPU you source, a detection config you tune per camera, a retention policy you set, a Home Assistant stack you operate, and a notification pipeline you wire. At a single home with five Reolink cameras, this is fun. At a portfolio of apartment buildings with DVRs from five different vendors and cameras nobody remembers the passwords for, it is a full-time job. Cyrano ships a device that autodetects the DVR from HDMI EDID, loads the right vendor overlay template, does the inference on-device, and posts to WhatsApp. The right question is not free vs paid; it is engineering time plus risk vs flat subscription.

Can I run Frigate, ZoneMinder, or Shinobi alongside Cyrano?

Yes, and this is a valid pattern if you have both IP cameras and a legacy DVR on the same site. Frigate handles the IP cameras over RTSP with its usual detector pipeline. Cyrano reads the DVR HDMI composite and handles the analog or HD-TVI cameras. Alerts can be federated into the same WhatsApp thread or PagerDuty escalation. We have not tried to replace Frigate on IP-native sites because it is genuinely good at what it does. The claim on this page is narrower: the open source category skipped the DVR HDMI ingest path, so for that specific input Cyrano is the honest option today.

What models do open source CV security camera projects actually use under the hood?

Frigate defaults to MobileDet SSD on Coral TPU, with optional YOLO variants via ONNX, TensorRT, or OpenVINO for GPU acceleration. ZoneMinder uses its older Perl-based pixel-diff analysis by default and supports a plugin that wraps YOLO through a Python helper. Shinobi wraps TensorFlow and a handful of YOLO checkpoints behind a plugin system. Viseron ships with CodeProject.AI, DeepStack, or YOLO pipelines depending on how you configure it. DeepCamera in 2026 has pivoted heavily toward local VLMs (Qwen, DeepSeek, SmolVLM, LLaVA, and YOLO26 released January 2026). Cyrano ships a purpose-trained human/vehicle/package classifier on the device NPU, tuned against actual DVR tile imagery (overlays, low-light noise, coax-era compression artifacts). The training data looks different from a benchmark like COCO because the input looks different.

How do I know whether my cameras are IP (and can use open source) or DVR-wired (and cannot)?

Three quick checks. First, look at the cable. Thick coax with a BNC twist connector going into a DVR is almost certainly analog, HD-TVI, HD-CVI, or AHD; ethernet with RJ45 going into an NVR or POE switch is almost certainly IP. Second, check the camera model. Any Reolink, UniFi, Amcrest, Axis, or Hikvision IP-series model has RTSP out. A Swann, Lorex, Night Owl, Samsung SDR, or Q-See system sold as a DVR kit is almost always analog or HD-TVI on coax. Third, try curling an RTSP probe from your laptop: ffprobe rtsp://admin:password@[camera-ip]:554/Streaming/Channels/101. If you can authenticate against an individual camera IP, open source NVRs are viable. If the only IP that responds is the DVR itself and it refuses per-camera RTSP, the open source category is mostly unavailable to you.

Does Cyrano itself plan to open source anything?

We intend to open source the overlay-template format and a reference parser so that any DVR vendor or community hobbyist can contribute templates for new firmware. The inference model, the per-tile scheduler, and the device firmware are not open; the honest reason is that a lot of the per-tile robustness (handling overlay bugs, time drift, encoder artifacts, tile-drop events) is hard-won engineering that we do not want to give away while we are still the only people solving this input. The template format being open means that if Cyrano goes away, the templates do not strand the installs.

🛡️CyranoEdge AI Security for Apartments
© 2026 Cyrano. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.