NeuroWatch features

NeuroWatch is a self-hosted security camera recorder for Linux and Windows that keeps recording offline, with NeuroWatch Cloud, a browser portal for live view, playback and recorder health that needs no open ports and does not store your recordings.

Why NeuroWatch runs fast and light

Decoding video is usually the most expensive work a camera recorder does, so NeuroWatch is built to do as little of it as it can. Its recording engine is written in Rust, stores video exactly as the camera sent it, and decodes a camera only while someone is looking at it on the recorder's own screen.

Recording never decodes video

Each camera's compressed video goes to disk without decoding or re-encoding, in segmented Matroska (MKV) files. Adding a camera to record adds no decoding work, and the footage keeps the camera's original quality.

Only what is on screen is decoded

The recorder decodes a camera only while a desktop window shows it. Cameras on other pages of the wall are not decoded, apart from the next page just before auto-scroll shows it. Decoding stops when the wall is hidden or minimized, and a headless recorder runs no live view decoders at all.

Smaller streams on the wall

In a multi-camera grid each tile shows the camera's smaller stream, its substream, when it has one. Watching one camera alone switches that tile to the main stream. Recording stays on the main stream throughout.

Preview rates that fit the view

The wall draws at most 25 pictures a second for one camera, 15 for up to 16 cameras and 4 for more, and you can change each limit. It keeps only the newest picture per camera, so a busy computer skips pictures instead of building up a queue and falling behind.

Hardware decoding when it is available

When video does need decoding, NeuroWatch uses the graphics card or video block where it can: VA-API, NVIDIA NVDEC, Direct3D 11, Direct3D 12, Intel Quick Sync or V4L2, with a software fallback. The status bar shows which decoder is active.

One connection per camera stream

Recording, the desktop wall, browser viewers and analysis plugins all share one connection to each camera stream, so a camera is not asked to serve several copies of its video. Each reader has its own bounded queue: one that falls behind skips ahead on its own and never holds up recording.

Browser viewing without transcoding

Live view and playback in a browser forward the camera's H.264 or H.265 video as it is, so the recorder neither decodes nor encodes video for them, and sends it only while someone is watching. A viewer starts straight away, without waiting for the camera's next keyframe. Camera sound is the one exception: it is converted for the browser while a viewer is connected.

Clip export without re-encoding

An exported MP4 copies the recorded video instead of re-encoding it, so it is quick and keeps the camera's quality. Only sound in formats MP4 cannot hold is converted.

Analysis runs in its own process

The recorder never starts a decoder for analysis. A plugin receives the compressed video and does its own decoding in its own process, optionally on another computer, so recording carries on if it stops. A low-CPU mode analyses keyframes only, and cameras that report their own ONVIF events need no decoding at all. Event pictures decode a single frame each.

A native engine in Rust

The engine is compiled Rust with asynchronous networking: no garbage collector to pause it and no interpreter between camera and disk, with memory safety checked when it is built. GStreamer handles the media formats.

The window is separate from the recorder

The desktop window (Qt, in Python) is a separate program that reads pictures from shared memory. Closing it leaves recording running, and if the recorder itself stops unexpectedly it is started again automatically.

We publish no benchmark figures: the load depends on how many cameras you have, their resolution and codec, your graphics hardware and how many are on screen. Diagnostics shows the real numbers for your own recorder.

Hardware decoding

DecoderWhereUses
VA-APILinuxIntel and AMD graphics
NVIDIA NVDECLinux and WindowsNVIDIA graphics
Direct3D 11WindowsGraphics with Direct3D 11 video decoding
Direct3D 12WindowsGraphics with Direct3D 12 video decoding
Intel Quick SyncIntel systemsIntel graphics
V4L2LinuxHardware video decoders on ARM boards
SoftwareLinux and WindowsThe processor, when no hardware decoder is available

Automatic is the default: it tries VA-API, then NVDEC, then Direct3D 11, then V4L2, and falls back to software. You can pick one in Settings → Video Wall, which also says which is active and why. Hardware decoding covers the desktop wall; recording and browser viewing do not decode video at all.

Live video wall

  • Ready-made and custom grids, continuing onto further pages, with manual paging or auto-scroll
  • Drag cameras to swap or move them, drag a corner to make one larger, and carry one to another page
  • Double-click a camera to watch it alone, and hold Ctrl and scroll to zoom into its picture
  • Full screen with the panels hidden, with status readings that can stay over the video
  • Extra windows on other monitors, each with its own grid, layout and page cycling, restored the next time you start
  • Light and dark themes

Cameras

  • RTSP and RTSPS, RTMP, MJPEG over HTTP(S), USB cameras (V4L2) and video files as sources
  • H.264 and H.265 video
  • Search Network finds ONVIF cameras and shows their model and whether they need a password
  • Add a camera by address: ONVIF asks the camera for its streams, or enter its stream addresses yourself
  • Several streams per camera: record the best one, show a lighter one on the wall, and pick another for any tile
  • Test a camera before saving it, and see its status, codec and resolution on its tile
  • Reconnects by itself when a camera drops out, and refuses to add the same camera twice
  • Camera sound (AAC, G.711, Opus, PCM) is recorded, and you can listen to one camera live
  • PTZ controls for compatible ONVIF cameras, with presets where the camera supports them
  • Two-way audio through a camera's speaker, for cameras with a supported ONVIF G.711 backchannel

Recording and storage

  • Continuous recording, to the drive you choose, for all cameras or the ones you pick
  • Weekly schedules painted on a grid, in hours or 15-minute steps, with exact-time windows and overnight spans
  • Event retention: records continuously, then trims footage with no events after a time you choose
  • Copy a recording policy to other cameras in one step
  • Disk cleanup above a limit you set (90% by default), and a storage quota per camera
  • Missing-drive protection: pauses recording on a disconnected drive or unmounted share instead of filling the computer's own disk, and carries on when it returns
  • Archive to a NAS: moves older recordings to another folder, checks each copy against the original before removing it, and limits the archive's size, hours and speed; Playback and Export still find them

Playback and export

  • A timeline of several cameras side by side, with recording gaps shown as gaps, and play, pause, seek and speed controls
  • Events only playback skips quiet time and pauses at the last recorded event
  • Coloured event marks on the timeline, and a searchable event list or paged thumbnails beside the video
  • Bookmarks with notes, and Keep this footage protects the recordings from every kind of cleanup until you release it
  • Export an MP4 by dragging the start and end of a clip on the timeline, on the desktop or in the portal
  • Export an event with its footage before and after
  • Recorded sound plays back, at normal pitch from 0.5× to 2× speed on the desktop

Motion detection and events

  • Motion detection by the included NeuroWatch Motion plugin, with sensitivity, minimum duration, cooldown, zones to watch or ignore, and a low-CPU mode
  • Motion boxes drawn on the live wall, on the picture they describe
  • Compatible ONVIF cameras can report their own motion, intrusion, line crossing, tampering and alarm inputs
  • An Events tab with search and filters by camera, type, status and date, and a picture of each event
  • Problems are events too: a camera going offline, a recording that keeps failing, a nearly full drive and a missing recording location
  • A bell on a camera's tile stays until you clear it, and a badge shows motion as it happens
  • Event history is kept for 30 days by default, and can be followed from a terminal

Alert notifications

  • Send alerts to this computer, ntfy push, Telegram or a webhook, with an optional event picture
  • Choose the events and cameras, weekly active hours and a cooldown, send a test and check the delivery history
  • ntfy, Telegram and webhook alerts are sent by the recorder itself, including without a screen, and need no cloud link

Local accounts and permissions

  • Optional local sign-in, off by default and separate from any cloud account
  • Viewers watch and review, operators also control PTZ, talk, bookmark, export and start or stop recording, and admins manage everything
  • Limit viewers and operators to selected cameras

Always recording, with or without a screen

  • Recording carries on after the window closes, and starts by itself when you sign in
  • A tray icon shows the state at a glance and names each problem
  • The desktop checks for a newer stable version on startup and every hour, with a download notice in the bottom status bar when an update is available
  • Linux can record from boot, before anyone signs in
  • Headless mode for a computer with no display, with status in the terminal
  • Docker images for Linux on 64-bit PC and ARM64: a headless recorder and the full app with its window
  • Installers for Windows, Debian and Ubuntu, Fedora and Arch Linux, plus portable downloads; an update leaves nothing of the old version behind

NeuroWatch Cloud, the optional web portal

  • Link a recorder with a one-time code: it connects out, so no ports are opened and no VPN is needed
  • Live view and recording review in a browser, with camera sound, on demand and under grants that last at most 60 seconds
  • PTZ controls and two-way talk from the browser
  • Review events with their pictures, bookmark moments and export clips, which are kept in the cloud for 7 days for download
  • Add, search for and edit cameras and change recording and alert settings remotely, including on a recorder with no screen
  • Camera addresses and passwords are encrypted in your browser for one recorder, so the cloud relays what it cannot read
  • Recorder diagnostics, reported only while the page is open
  • Diagnostics lists per-camera main and sub connections, consumer counts by role, received video/audio bitrates and frame rates, shared GOP cache usage and queue drops, without opening streams or decoders; desktop and portal combine health and connections in one camera card, with paths to Recording, Video wall, Web and plugin consumers, green for connected, red for disconnected and yellow for waiting or reconnecting
  • Recorders and cameras pinned on a map, with tags and site labels
  • Each recorder offers Default and Plugin dashboards tabs, with a plugin selector for available dashboards; this browser remembers the selected view, grid or map, cameras per page and page separately for each account and recorder
  • Owner, admin and viewer roles, invitations, per-recorder access, and optional or mandatory authenticator sign-in

Analytics plugins

  • Plugins are separate programs that receive compressed video and send back events and drawings
  • Run a plugin on the recorder or on another computer, connected over encrypted QUIC or TLS
  • An administrator approves each plugin's key and exact permissions before it receives any video
  • Per-camera settings, drawings on the live view and the plugin's events in one place
  • Plugin dashboards use current plugin assignments and camera inventory; old reports do not add extra cameras to the live grid
  • Plugin dashboard videos start only when you press Start live view; one plugin video plays at a time, and starting another stops the previous one
  • Plugin live video offers the camera's available Main and Sub streams and shows the received resolution, frame rate and codec
  • A slim desktop count strip uses colour-matched outline icons, clear counts and the total together in one row when space permits, with a compact layout on smaller camera tiles
  • Drawings are saved with recordings and shown again in playback
  • Software kits for Rust, Python and web pages

Status and diagnostics

  • A status bar with disk space, CPU, memory, network speed, the active decoder and the recorder and cloud connections
  • Diagnostics with per-camera frame rates and dropped frames, and graphics card usage where the driver reports it
  • Compact desktop diagnostics cards show three columns on wide windows, expandable buffer details and names of active analytics plugins reported locally by the recorder
  • Compact web camera diagnostics use up to three columns and nine cameras per page, with expandable details that distinguish idle decoding from unmeasured renderer statistics and latency
  • An extended debug log you can switch on from Settings when reporting a problem

Editions and licence

  • Free for up to 16 cameras, with no account needed for local use
  • NeuroWatch Unlimited is now USD 0 (normally USD 50), with sign-up required before downloading and no software camera limit; capacity depends on your hardware
  • Open source under the Apache License 2.0, for home or business use
  • NeuroWatch Cloud plans are separate from the desktop editions

What it does not do

  • NeuroWatch Cloud keeps no backup of your recordings. If the recorder's disks fail, footage on them is lost, so plan disk redundancy on the recorder.
  • Live view and playback from the portal need the recorder to be online.
  • Alerts cannot be sent by email yet: they go to the desktop, ntfy, Telegram or a webhook.
  • NeuroWatch itself has no AI object detection: analysis comes from plugins, and the included plugin detects motion.
  • There are no macOS or 32-bit builds.
  • NeuroWatch is in beta: release checks install it and play generated video on each supported system, but they do not qualify physical cameras, graphics cards or displays.

Questions

Why does NeuroWatch use so little CPU?

Because it avoids decoding video. Recording stores each camera's compressed video as it arrives, browser viewing forwards it unchanged, and exports copy it. Only cameras shown on the recorder's own screen are decoded, using a graphics card where possible, and multi-camera grids show each camera's smaller stream.

Does NeuroWatch decode video to record it?

No. Video goes to disk as the camera compressed it, without decoding or re-encoding, so the footage keeps its original quality. Adding a camera to record adds no decoding work.

Do I need a graphics card?

No. Recording and browser viewing do not decode video, so they need none. The desktop wall uses a graphics card when it finds one and the processor otherwise. A headless recorder runs no live view decoders.

Which hardware decoders does NeuroWatch support?

VA-API (Intel and AMD on Linux), NVIDIA NVDEC, Direct3D 11 and Direct3D 12 on Windows, Intel Quick Sync, and V4L2 on ARM boards, with a software fallback. Automatic is the default, and Settings → Video Wall lets you pick one and shows which is active.

Is NeuroWatch written in Rust?

The recorder, which does the capturing, recording and streaming, is written in Rust and uses GStreamer for media formats. The desktop window is a separate Qt program in Python. Rust gives the engine native speed, no garbage collector to pause it, and memory safety checked when it is built.

Does it support H.265?

Yes. H.264 and H.265 cameras are both recorded as they arrive and forwarded to browsers unchanged. Watching H.265 in a browser needs a browser and device that can decode it.

Does viewing in a browser slow the recorder down?

It adds upload bandwidth while someone watches, not video decoding or encoding: the recorder forwards the camera's video as it is, and sends nothing when nobody is watching. Each viewer has its own queue, so a slow connection never holds up recording.

How many cameras can it handle?

The free edition runs up to 16 cameras and NeuroWatch Unlimited has no software limit. The real limit depends on your hardware, the cameras' bitrates, your disk speed and how many cameras are on screen. We publish no benchmark figures; Diagnostics shows the load on your own recorder.

Does it detect motion?

Yes, in two ways. The included NeuroWatch Motion plugin analyses the video in its own process, with zones and a low-CPU mode. Compatible ONVIF cameras can also report their own motion, intrusion and line crossing events, which needs no decoding.

Can NeuroWatch send alerts?

Yes: to the desktop, ntfy push, Telegram or a webhook, chosen by event, camera and weekly hours, with an optional picture. Email is not available yet.

Can it run without a monitor?

Yes. Headless mode records on a Linux server or small computer with no display, and on Linux with systemd it can start at boot. Docker images are published too. A linked recorder can be managed from NeuroWatch Cloud.

Is NeuroWatch open source?

Yes. The recorder and its desktop app are open source under the Apache License 2.0, free for home or business use. NeuroWatch Cloud is an online service with its own terms, and its plans are separate.

Does it run on macOS?

No. NeuroWatch runs on Windows 10 and 11 (64-bit) and on 64-bit Linux, on PCs and ARM64. There are no macOS or 32-bit builds.