Skip to main content
All posts

How to tell whether your existing CCTV can be reused

What to check before assuming the cameras and NVR already on site can serve as KIOSCAN video sources, and why a site assessment decides the rest.

Published2 min readTopics:IntegrationArchitectureField notes

The question comes up on almost every site visit: "can we just use the cameras we already have?"

The honest answer is "not until we look." But the list of things to look at is short and fixed, and most of it can be settled in an afternoon. This post is that checklist.

Four things to check first

These matter more than the camera model number.

  1. Does the NVR expose streams over a standard protocol? If you can pull RTSP or ONVIF out of it, most of the downstream work gets simpler.
  2. Is the network segmented? Many sites keep the surveillance VLAN physically separate from the office network. That is a good structure to preserve, and the design should follow it rather than fight it.
  3. Is there concurrent-stream headroom? Every NVR caps simultaneous sessions. If the monitoring wall already holds those channels open, an additional session is simply refused.
  4. Are the areas you care about actually in frame? This is the one that trips up most sites. There are cameras, but the angle covers the aisle while the work point sits outside the frame.

Number four is the usual blocker

Existing cameras are generally installed for theft deterrence. They are placed to see entrances and aisles broadly, with wide-angle lenses. That is a different job from looking closely at a work point.

So "we have twenty cameras" is not enough to decide anything. Build the list of areas that need coverage first, then check which camera sees each one, and where in its frame.

Checking a stream

The fastest check is to open the stream once.

# Confirm the NVR serves RTSP, and see the resolution and codec in one shot
ffprobe -v error \
  -select_streams v:0 \
  -show_entries stream=codec_name,width,height,avg_frame_rate \
  -of default=noprint_wrappers=1 \
  "rtsp://USER:PASSWORD@192.168.0.10:554/cam/realmonitor?channel=1&subtype=0"

If it answers, you are halfway there. Three values matter.

Field What it tells you
codec_name h264 is straightforward. hevc (H.265) needs the processing path reviewed separately.
width × height What really counts is how many pixels the work point occupies, not the sensor spec.
avg_frame_rate Substreams are often configured at a much lower frame rate than you expect.

If it does not answer, check in this order: firewall, session limit, account permissions. It is almost always one of those three.

How this looks in code

Until the integration scope is settled, it pays to keep the source abstract. Adding a camera later — or supplementing with phone-captured footage — then costs nothing at the call sites.

/** A site video source. An existing NVR and an added camera share one type. */
type VideoSource =
  | { kind: 'nvr'; channel: number; rtspUrl: string; codec: 'h264' | 'hevc' }
  | { kind: 'camera'; deviceId: string; rtspUrl: string; codec: 'h264' | 'hevc' }
  | { kind: 'mobile'; uploadedBy: string };

/**
 * Check the codec before choosing a processing path.
 * H.265 configuration depends on hardware decode availability.
 */
function needsTranscodeReview(source: VideoSource): boolean {
  return source.kind !== 'mobile' && source.codec === 'hevc';
}

Where that leaves you

KIOSCAN uses your existing CCTV and NVR infrastructure first, to reduce the cost of getting started, and a site assessment determines the actual integration scope and any additional equipment.

Some sites really can reuse everything. Others need cameras added in specific areas. Anyone claiming to know which, without having looked, is the one worth being skeptical about.

The four items above are the whole list, and a single site visit usually settles them.