SecuritySpy User Manual
SecuritySpy User Manual
SecuritySpy
User Manual
for version 5.5.8
Written by Ben Bird - Ben Software Ltd
Web | Store
Table of Contents
Introduction
Live Video
Video Windows
Instant Replay
Full Screen Mode
Customising Display Layouts
Camera Info Window
Recording and Schedules
Movie Playback (Browser)
Pan/Tilt/Zoom (PTZ)
Dashboard
SecuritySpy as Remote Viewing Software
Home Integration
Remote Access from your iPhone, iPad or Apple TV
Setting up SecuritySpy for Autonomous Operation
Optimising Performance
Using External GPU Devices
Achieving Effective Motion Detection
Screen Capture
Preferences
General
Cameras
Display
Scheduling
Storage
Compression
Uploads
Email
Web
NTP Time Server Installation
Licensing
Support / Help
Introduction
SecuritySpy is CCTV video surveillance software for the Mac.
With features such as AI-powered smart motion detection, email and iPhone alerts, ONVIF support and
Pan/Tilt/Zoom control, SecuritySpy will enable you to set up a comprehensive and effective CCTV
system for your business or home quickly and easily.
SecuritySpy can turn any Mac into a video surveillance station (for example, with multiple large
screens in a security control room). It it also ideal for autonomous remote operation, as it has a fully-
featured secure web interface that allows you to access and control your surveillance system from over
your local network or over the Internet. And, as Mac software, it is as elegant and easy to use as you
would expect, with a carefully-designed user interface.
https://bensoftware.com/securityspy/manual/ 1/43
12/9/23, 14:08 SecuritySpy User Manual
If you are building a video surveillance system from scratch, all you need is SecuritySpy, a Mac, and
some IP cameras. If you have an existing system using analog cameras, SecuritySpy can use these
alongside more modern IP cameras, allowing you to transition to a state-of-the-art digital system.
SecuritySpy's flexibility will allow you to set up a system that is tailored for your individual needs,
whether you want a single camera or a hundred.
This manual describes how to use the SecuritySpy software itself. For information about how to
choose, set up and install the hardware of your CCTV system, see the SecuritySpy Installation Manual.
The main features of SecuritySpy are:
Displays and captures video from multiple cameras simultaneously
Supports virtually all IP cameras (ONVIF, Axis, Vivotek, Canon, Dahua, Hikvision etc.)
Separate Continuous and Motion Detection capture modes, for flexible recording
Sophisticated AI-based motion and object detection using neural networks
Built-in secure web server for remote viewing and administration
Hardware-accelerated H.264 and H.265 compression for efficient storage of captured footage
Pan/Tilt/Zoom (PTZ) support for network cameras
FTP upload feature for automatic off-site backup of captured footage
Motion-triggered email and iOS notifications
Two-way audio support
Pre-capture option, to capture video before the time of motion
Synchronised multi-camera playback of captured footage
Initially, SecuritySpy will detect and display all local (USB, Thunderbolt and built-in) devices connected
to your Mac. If you are using IP cameras, you can add them via Preferences - Cameras. Setup
instructions for IP video devices can be found in the SecuritySpy Installation Manual.
Live Video
Video Windows
SecuritySpy's main All Cameras window shows live video streams from all configured cameras in a grid
view. You can also create Group windows that contain particular groups of cameras — useful in larger
installations to organise cameras into logical collections.
In addition, each camera can be displayed in its own individual video window. You can open individual
camera video windows from the Window menu, or by double-clicking on a camera's live image in the
main video window or Group window, or by double-clicking on a camera name in the Camera Info
window. All video windows can be resized to any shape and size by dragging any side.
SecuritySpy offers digital Pan/Tilt/Zoom control for any camera in any video window: hold the
Command key (⌘) on your keyboard and scroll up or down on your mouse or trackpad (on a trackpad,
use the two-finger gesture to scroll). Once zoomed in, release the Command key and scroll in any
direction to pan around the image.
Here is a summary of the functionality of video windows:
https://bensoftware.com/securityspy/manual/ 2/43
12/9/23, 14:08 SecuritySpy User Manual
Instant Replay
The instant replay feature keeps a buffer of frames from each camera in memory, which is available
for instant playback or capture at any time. Because this feature can use significant RAM, it is off by
default, but can be enabled via Preferences - General. To start an instant replay session, right-click on
a live video image and select Start Instant Replay, or hold the Command key and scroll left on a live
video image. During an instant replay session, the video window will look like this:
During the replay session, hold Command and scroll left/right, or click and drag the yellow indicator,
to go backwards/forwards in time. Save individual images by dragging them to the Finder, or right-
click for an option to save the entire buffer as a movie file.
Note that, during a replay session, the removal of old frames is suspended, but new frames are
continually being added, so the longer a replay session continues the more RAM it will use.
Full Screen Mode
Enter full screen mode using the option in the Window menu, or by pressing Command-F on the
keyboard. Each monitor attached to your computer becomes an independent full-screen display for
whichever cameras you choose. The first time you enter full screen mode, SecuritySpy will add all
available cameras to the full screen view; to change this, right-click (control-click) anywhere on a
screen and a menu will pop up that allows you to configure which cameras to display on that screen.
While in full screen mode, double-click on any individual camera to temporarily enlarge it to cover the
whole screen. Double-click again to return to the multi-camera view.
Customising Display Layouts
Each video window, and each screen in full screen mode, is laid out in a grid in which each camera
occupies one grid square by default. You also have the option of setting particular cameras to display
at larger sizes - for example, a camera can be set to occupy three grid squares wide by two grid
squares high. This can be set via the options in the contextual menu that appears when you right-
click (or Control-click) a camera's live view:
Use the options Camera Display Width In This Window and Camera Display Height In This Window to
set the size of each camera's live view. Each video window, and each screen in full screen mode, has
its own independent layout that can be set in this way.
https://bensoftware.com/securityspy/manual/ 3/43
12/9/23, 14:08 SecuritySpy User Manual
By default, SecuritySpy automatically chooses an optimum number of columns for the layout grid,
based on the size of the window and the resolutions of the cameras. This can change as the window is
resized; instead, to ensure that cameras remain in fixed positions, you can use the Number Of
Columns In This Window option to set a fixed number of columns.
If the size you request for a particular camera would take its view beyond the right or bottom edge of
the window, its view size is reduced to fit, so you will get a smaller size than you request. You can
change the order of the cameras by dragging them up and down in the list on the left under
Preferences - Cameras to ensure that each camera has enough space to display at the requested size.
Here is a simple example showing two cameras displayed at double size:
The Camera Info window shows a wealth of information about the operation of each camera:
Camera Name, as set under Preferences - Cameras.
Status: the letters C, M and A refer to Continuous Capture, Motion Capture and Actions modes
respectively. Grey indicates that a particular mode is unarmed; orange indicates that the mode is
armed but not actively doing anything (i.e. waiting for a motion trigger); red indicates that the
mode is armed and doing something (e.g. recording or running an action).
Motion: an indication of the motion that is currently being detected in the camera's video stream
- when the duration of motion reaches the trigger duration as set under Preferences - Cameras -
Triggers, this indicator will turn red to indicate a trigger.
Audio: this shows the current audio level. Click the speaker icon to play the live audio via the
Mac's speakers. Additionally, if the camera supports two-way audio, click the microphone icon to
speak and send that audio to the camera.
FPS: the current frame rate of the video stream.
Pixels: the resolution in terms of number of megapixels (MP).
Size: the resolution in terms of pixels wide by pixels high.
Data Rate: the amount of data being received per second.
Duty: the percentage of time that some active processing is happening. This doesn't translate
directly to CPU usage, since the processing may be elsewhere (e.g. GPU, Media Engine, Neural
Engine), but this provides a direct comparison of resource usage between cameras.
https://bensoftware.com/securityspy/manual/ 4/43
12/9/23, 14:08 SecuritySpy User Manual
Loss: the percentage of data packets that have been lost during transmission over the network
(ideally this will always be zero — if not, this indicates a network or camera issue).
Video Format of the camera's video stream (e.g. JPEG, H.264, H.265).
Audio Format of the camera's audio stream (e.g. PCM, μLaw, AAC).
Hardware Video Decode Status: whether this camera's video decoding is being hardware-
accelerated; also allows you to assign the camera to an External GPU (eGPU) for processing.
Video Decoder Pressure, as measured by the size of the queue of video frames that are waiting
to be decoded. If the queue becomes full, decoding will temporarily stop, resulting in missing
chunks of live video, which will negatively affect video windows, web streaming, and motion
detection. If you frequently see high decoder pressure, you should reduce camera frame rates.
№: the camera number, which is a unique identifier used to refer to the camera, primarily via
SecuritySpy's web interface.
To choose which columns to display, click on the header bar to get a pop-up menu that allows you to
turn on or off each of the above items.
And, if you have set up camera groups, you will see a filter button in the top-right corner of this
window that allows you to filter the list of cameras by group.
Once a schedule has been applied to a camera mode, it will be permanently remembered, including
across program restarts.
Schedule Overrides
It is sometimes useful to temporarily override schedules. For example, if you are getting lots of
notifications due to some unusual activity in a particular camera, you can use a temporary schedule
override to disarm Actions mode for one hour, to temporarily stop the notifications.
This can be best understood by the following diagram that shows the relationship between schedules,
schedule overrides, and arming/disarming of camera modes:
Right-click on a camera's live video feed in any video window, or on a camera name in the
Camera Info window, to get a pop-up menu that allows you to set schedules and overrides for
that camera.
In the Camera Info window, and in the information line displayed above live video feeds (if you
have this option enabled in the Preferences), you will see C, M and A indicators that represent the
three modes that can be armed (Continuous Capture, Motion Capture and Actions), like this:
Click on one of these indicators for a pop-up menu to select the schedule for that mode. These
indicators are coloured as follows:
Grey — unarmed
https://bensoftware.com/securityspy/manual/ 5/43
12/9/23, 14:08 SecuritySpy User Manual
Amber — armed but not recording or performing actions (waiting for a motion trigger)
Red — armed and recording or performing actions
Via the Schedule Setter window, which is available from the Window menu:
From this window, you can easily apply schedules and overrides to individual cameras, groups, or
all cameras in one go.
Select one or more cameras and specify a date, and the Browser will display all files matching
these criteria. The main components of the browser are:
Date Control
For the date you specify, the Browser displays all footage captured during that day. Click the
calendar icon to get a pop-up graphical calendar, which makes choosing the desired date much
easier.
Camera List
This list shows all active cameras in SecuritySpy. Select up to six cameras to view footage from
them all, synchronised together. To select multiple cameras, Shift-click or Command-click
entries in the list.
File List
This list shows all files that have been captured by all selected cameras on the specified day.
Click on a file in this list to jump to the start of that file in the timeline, or double-click on a file
to start playing it immediately. Additionally, if you hold the alt (option) key on the keyboard while
clicking/double-clicking a file, it will jump to the start of the first motion in the file, rather than
the very first frame.
Finder colour tags can be set by right-clicking on a file and selecting a tag from the menu. In the
above screenshot, two files have been tagged red and one has been tagged orange.
You can also drag files from this list to the Finder to copy them.
Timeline
The timeline shows a graphical representation of time periods during the day that have captured
video footage for each selected camera. Click anywhere in the timeline to change the current
cursor time, and click and drag left and right to scrub backwards and forwards through the video
footage. Hold the shift key on the keyboard while dragging the timeline cursor to select a time
period, which you can then export.
Any files captured since the last scan will be added in red, indicating that they have not yet been
queued for display in the movie area. To play these files, use the Rescan option in the Browser
menu (see below) to add them to the movie display.
Files in the trash are showed in grey, but will still be playable until you empty the trash.
Bookmarks
Bookmarks appear as red triangles at the top of the timeline, and are useful for marking the time
https://bensoftware.com/securityspy/manual/ 6/43
12/9/23, 14:08 SecuritySpy User Manual
of interesting events in captured footage:
Click and drag in each camera's image to define search areas, and specify whether you want all
motion events, or specifically events where a human, vehicle or animal has been detected. Click
the Search button, and the Browser will list all events that match the specified search criteria:
Clicking on an event in the list on the left moves the timeline to that point in time, and a red box
will be overlaid on the video footage of the relevant camera to highlight the location of the event.
JKL Control
The Browser also supports JKL keyboard shuttle controls: pressing L causes the playback to
speed up in the forward direction by a factor of 2, J causes the playback to speed up in the
reverse direction by a factor of 2, and K pauses the playback.
Next/Previous Event
Press the tab key to jump to the next event, or Shift-tab to jump to the previous event.
Zoom In/Out Video Playback
To zoom in or out of the captured footage during playback, hold the Command key (⌘) and
scroll up or down on your mouse or trackpad (on a trackpad, use the two-finger gesture to
scroll). Once zoomed in, release the Command key and scroll in any direction to pan around the
image.
https://bensoftware.com/securityspy/manual/ 7/43
12/9/23, 14:08 SecuritySpy User Manual
Browser Menu
The Browser menu in the menu bar contains the following options:
Pan/Tilt/Zoom (PTZ)
Each video window that contains a camera that supports PTZ will have a "PTZ" button in the right
side of its title bar: click this button and a drawer will slide out that allows you to control pan,
tilt, zoom, and preset positions:
The PTZ controls act as a virtual joystick, allowing you to control direction, as well as speed of
movement for cameras that support variable-speed movement (the further you move the blue
indicators from the centre of their respective control areas, the faster the movement).
https://bensoftware.com/securityspy/manual/ 8/43
12/9/23, 14:08 SecuritySpy User Manual
If your camera supports preset positions, the preset buttons will be available. To save the current
position of the camera as one of the presets, hold the alt (option) key on the keyboard and click a
preset button (the Home position, if available, is typically pre-set by the manufacturer and
cannot be changed).
Click the gear button in the top right of the drawer to reveal these settings:
Here you can name each preset, set up PTZ auto-patrol, and set the master PTZ movement speed
(if you camera supports variable-speed movement).
PTZ Auto-Patrol
Select which cameras to include in auto-patrol using the checkboxes in the settings panel shown
above, and choose your preferred "patrol delay" setting, which is the number of seconds between
automatic movements. Then, to start auto-patrol, click the play button (►) in the PTZ drawer.
While auto-patrol is running, the camera will be automatically moved between the selected
presets in an indefinite loop. If you move the camera manually during this time, auto-patrol is
temporarily suspended and will automatically resume 20 seconds after the last manual input.
PTZ Keyboard Shortcuts
You can also control PTZ from the keyboard, using the arrow keys, or the numeric keypad on the
right of standard keyboards (1 on the keypad corresponds to down-left and so on). For cameras
that support variable-speed movement, holding the shift key while using these keyboard
shortcuts moves the camera 50% faster than the standard speed.
You can recall presets by pressing a number key at the top of the keyboard, or hold alt (option)
with a number key to save a preset.
Even if you don't have the PTZ drawer open, simply click once on the video image of a camera
you want to control, and you can then use these keyboard shortcuts.
PTZ Mouse Shortcuts
Hold the shift key (or enable caps lock), and click directly in a camera's image in any video
window to control its pan and tilt: a click on the right side of the video image will move the
camera right and so on. If your camera supports variable-speed movement, the distance of your
click from the centre of the image defines the speed of movement.
PTZ Control Permissions
Note that devices typically require administrator username/password details for controlling PTZ,
so make sure these have been entered correctly in the Preferences - Cameras - Device window.
Non-admin authentication details required for simply viewing video may not be enough for
controlling PTZ.
Dashboard
The Dashboard window displays various performance metrics, which allow you to monitor the
daily operation of your SecuritySpy system and spot any potential problems. Choose Dashboard
from the Window menu to open the Dashboard:
https://bensoftware.com/securityspy/manual/ 9/43
12/9/23, 14:08 SecuritySpy User Manual
https://bensoftware.com/securityspy/manual/ 10/43
12/9/23, 14:08 SecuritySpy User Manual
HomeHelper
In HomeHelper, you configure how SecuritySpy interacts with Home by defining Triggers and
Actions that link up to each camera's Triggers and Actions in SecuritySpy.
https://bensoftware.com/securityspy/manual/ 11/43
12/9/23, 14:08 SecuritySpy User Manual
Triggers define rules for initiating Motion Capture and Actions in cameras, based on changes to
the state of Home accessories (e.g. a light turning on initiating recording in a camera). You can
add multiple accessories to each trigger, and each accessory will initiate the trigger. For example,
the following trigger is initiated when either of two power sockets turns on:
HomeHelper Triggers can be set for cameras under Preferences - Cameras - Triggers, and for
schedule presets under Preferences - Scheduling - Schedule Presets.
Actions define rules for setting states of Home accessories that can be initiated by SecuritySpy
(e.g. motion detection in a camera causing a light to turn on). Multiple accessories can be added
to each action, so that one action can make multiple changes. For example, the following action
will turn on two lamps, and then reset them to their previous states after a short time:
https://bensoftware.com/securityspy/manual/ 12/43
12/9/23, 14:08 SecuritySpy User Manual
HomeHelper Actions are set for cameras under Preferences - Cameras - Actions.
Status indicator
An indicator at the bottom left corner of the HomeHelper window shows its status, which will be
green when successfully connected to both SecuritySpy and Home.
iCloud required
You will need to sign into iCloud on the Mac that is running SecuritySpy and HomeHelper.
Managing Home devices
To add, remove or rename Home accessories, use Apple's Home app.
HomeHelper must stay open
In order to function, HomeHelper must be open and visible, but it can run quietly in the
background. SecuritySpy will open and close HomeHelper automatically as necessary.
Why is this a separate app?
This is required due to two limitations imposed by Apple. The first is that normal macOS apps,
such as SecuritySpy, cannot access Home; only iOS apps can. Therefore, HomeHelper has been
implemented as a Mac Catalyst app, which is a framework that allows iOS apps to run on macOS.
The second is that Home apps must be distributed via Apple's App Store, which is a limitation
that we don't want to impose on SecuritySpy itself.
Can I view SecuritySpy's cameras in the Home app?
Yes - please see: Adding SecuritySpy Cameras To HomeKit Using Homebridge.
https://bensoftware.com/securityspy/manual/ 13/43
12/9/23, 14:08 SecuritySpy User Manual
Optimising Performance
Using multiple cameras simultaneously involves moving, calculating and storing large amounts of
data. Here are some tips to get the most out of your system:
Under Preferences - Cameras - Device, leave the Recompress Video Data option turned off,
unless you have a good reason to enable it. Leaving this option off means that you won't be
able to use SecuritySpy's text overlay and transformation features - instead, these should be
enabled directly in the camera if required.
Under Preferences - General, leave the Allow automatic computer sleep option turned off -
SecuritySpy cannot operate when your Mac is sleeping.
Disable hard disk sleep in the Energy Saver system preference if you get movie files with a
long pause at the beginning. If the hard disk is sleeping, frames will be lost at the start of
the next capture due to the time taken to spin up the disk (this only applies to mechanical
hard drives, not to solid state drives).
Close live video windows when you are not using them. Live video display can use
significant CPU and GPU resources, especially on older Macs. To achieve this automatically,
use the option under Preferences - General to Auto-close video windows.
Set each camera to the frame rate you require and no higher (10fps should be sufficient for
most general-purpose CCTV systems).
A fast hard drive is likely to improve performance, depending on the number of cameras
capturing simultaneously and the compression settings used. Connect external drives by
USB 3.1 or Thunderbolt where possible (though USB 3.0 also offers plenty of speed for most
systems when using Motion Capture recording). Do not use "Fusion" drives.
Under System Preferences - Sharing, make sure the "Content Caching" option is turned off.
This can use significant storage space, which can compete with SecuritySpy's disk usage.
When using AI-based motion-detection, follow our guidance about Achieving Effective
Motion Detection. The AI can use significant system resources, so the more false-positive
triggers that can be prevented by the first-line standard motion detector the better.
https://bensoftware.com/securityspy/manual/ 14/43
12/9/23, 14:08 SecuritySpy User Manual
By default, SecuritySpy attempts to use hardware acceleration to decode incoming video
data. This minimises CPU usage, and is the optimum configuration for the majority of
systems. However, for systems with large numbers of cameras and/or high resolutions and
frame rates, this can overwhelm the hardware decoding abilities of your Mac. Check the
Video Decoder Pressure indicators in the Camera Info window to see if your system is
struggling to keep up with hardware decoding. If so, see this FAQ about decoder overload
for information about how to mitigate this situation.
This allows you to assign each camera's video decoding task to your Mac's internal hardware,
external eGPU hardware, or software CPU decoder. If, for any reason, the eGPU cannot be used,
SecuritySpy will fall back to internal hardware decoding. The status indicators shown in the
Camera Info window are as follows:
An internal hardware decoder is being used
An external hardware decoder is being used (eGPU) *
The CPU is being used because there are no hardware decoding resources available
The CPU is being used because it was selected by the user
* The eHW indicator is shown on macOS 10.15 and later only. On older systems, this information
is not available to SecuritySpy, so the HW indicator will be shown instead. In this case, you can
use other means to check eGPU usage, such as Activity Monitor.
Video Encoding
Encoding will be performed when recording from any camera that has been specifically set to
recompress video data under Preferences - Cameras - Device, and for video streams generated
for sending via the web interface. SecuritySpy will automatically distribute encoding tasks across
all available internal and external hardware.
https://bensoftware.com/securityspy/manual/ 15/43
12/9/23, 14:08 SecuritySpy User Manual
Bad: the lens is too wide, so the details of the Good: the lens has the perfect length to
cars are difficult to make out, let alone capture just the area under surveillance, so
people; lots of sky is included; and unless you that the people are large enough in the frame
want to capture boats, the large area of water both for effective triggering of motion
on the left is a waste of pixels. detection and for distinguishing facial
features.
Mounting
It is vital that the camera itself does not move, as this would significantly compromise the
effectiveness of motion detection. Mount cameras securely, using a sturdy bracket, on a fixed
object such as a building. Avoid mounting cameras on trees or poles that can move in the wind.
Lighting
In low-light conditions, cameras can produce significant noise. This is because the camera has to
boost the signal from the sensor in order to produce a bright enough image, which also boosts
the noise. Here is an example of what this looks like up close:
In a noisy image, the detection threshold for real motion has to be increased, so that it will take a
lot more movement than normal to trigger motion detection. This results in real events being
less likely to be detected (i.e. more false negatives).
The solution is to install better lighting for the scene you want to capture – either visible or infra-
red (if your camera is IR-sensitive).
Many cameras have built-in infrared LEDs for night vision. These work fine in limited
circumstances, however they are typically not very effective beyond a few meters. They also have
a further disadvantage when used outdoors in that they tend to attract insects, which fly around
the camera, brightly lit by the IR light, triggering motion detection. You will get far better results
if you use separate IR or visible light illuminators, which are typically also much more powerful.
Compression settings
Video from IP cameras is compressed, typically to H.264 or H.265 video format. With the right
compression settings, these formats can provide very high quality, but with the wrong settings
they can cause unacceptable image degradation. Here is an example of low-quality H.264
compression:
There are a number of parameters that can be set in your camera to control compression quality:
CBR (Constant Bit Rate) compression produces a fixed amount of data per second, and
tends to be what most cameras are set to by default. For complex scenes with a lot of
movement, which would otherwise need more bits to encode accurately, this bit rate
restriction can result in the camera reducing its compression quality to unacceptable levels,
thereby introducing the kind of artefacts shown above.
VBR (Variable Bit Rate) is a much better mode to use, as it does not suffer from this
problem. With VBR, the compressor will use more bits as required, in order to encode the
scene accurately.
Quality setting (available in VBR mode only): the higher this setting, the higher visual quality
you get, at the expense of a higher data rate. Typically a medium-to-high value, or 60 on a
1-100 scale, will give good results, though this does vary between cameras so you may
have to experiment a bit.
I-frame interval / GOV Length / Key frame rate: this specifies how often the video stream
contains I-frames, which are self-contained frames that encode the entire image. Between
https://bensoftware.com/securityspy/manual/ 16/43
12/9/23, 14:08 SecuritySpy User Manual
I-frames there are multiple P-frames (delta frames), which contain only the changes in the
image since the last frame. A good value for this setting is to have an I-frame every 2
seconds or so (so if the frame rate is 10fps then an I-frame interval of 20 is good).
Frame rate
Low frame rates will impair motion detection accuracy. The algorithm works best at around
10fps, but in general you should use a frame rate of at least 5fps for effective motion detection.
Masking (available via Preferences - Cameras - Triggers)
Setting a mask to ignore certain parts of the video image is an effective way to reduce false-
positive triggers. Typically you will want to mask out objects that move in the wind (e.g. trees
and plants), or areas where you are not interested in detecting motion. However, make sure that
you do not mask out more than necessary – the algorithm works best when it has plenty of pixels
to work with.
No mask - activity in the entire frame will A mask to ignore motion in the road and
trigger motion detection motion caused by the tree
Trigger duration (available via Preferences - Cameras - Triggers)
This setting specifies the minimum duration of continuous motion that will generate a trigger. By
default this is 1 second, which works well in most cases. Real motion (e.g. a person walking)
typically lasts significantly longer than one second and hence will be detected, whereas many
types of false motion (e.g. leaves blowing in the wind or snow falling close to the camera)
exhibits a start-stop pattern that will be effectively filtered out by this feature.
Further considerations for AI-based motion detection
The above advice applies whether you are using the AI-based motion detection features or not,
as images still go through the normal motion detection algorithm first before they are passed to
the AI for further processing. The main thing to be aware of is that computer vision algorithms
work far better on high-resolution, clean, clear images than low-resolution, noisy, cluttered
ones. Specifically:
It is important to ensure that there is good lighting that illuminates the whole scene,
whether this is visible or infra-red lighting (if the camera is infra-red sensitive). This not
only reduces noise (see above), but makes objects clearer and therefore more likely to be
recognised by the AI.
Set the camera with a minimum shutter speed to avoid the blurring of moving objects:
1/50s is usually sufficient for people, and 1/100s for vehicles or animals.
The higher the resolution the better; 2 MP (1080p) should be considered the minimum.
Make sure the camera's orientation is correct so that objects don't appear at odd angles.
A clean, uncluttered environment will yield higher accuracy than a messy, cluttered one.
Vehicle detection can only be used in areas where there are no parked vehicles usually. The
AI is very good at recognising a vehicle, but cannot distinguishing between a moving vs. a
stationary one.
Animal detection is inevitably a bit less accurate than vehicle or human detection, because
animals tend to be small and fast, so can come out as indistinct blurry blobs in less than
ideal conditions (e.g. in low light, or from low-resolution cameras) - for accurate animal
detection, is is especially important to ensure high-quality images from your cameras by
using high-resolution cameras and good lighting.
If you wish to detect smaller animals, a camera mounting position closer to the ground than
usual (e.g. 1m/3ft) will work better, as this will help to capture more useful details of the
animals than a top-down view would.
The kinds of animals that will be detected are medium-sized four-legged mammals (e.g.
dogs, cats, foxes, horses etc.) and birds. The AI is not designed to detect other less-
common creatures of different shapes (e.g. snakes, fish etc.) as these almost never appear
in CCTV images. The AI is also not designed to detect insects, as most users will want to
ignore them.
Screen Capture
Under Preferences - Cameras, the plus (+) button at the bottom left of the window allows you to
add a camera; in the menu that pops up, you also have the option to add one of your Mac's
screens, for example:
In this case, there are three screens available, and each one can be added as a video input
source, as though it were a stream from a camera.
https://bensoftware.com/securityspy/manual/ 17/43
12/9/23, 14:08 SecuritySpy User Manual
Screen capture can be resource-intensive, so it is advisable to keep the frame rate (which you can
set under Preferences - Cameras - Device) low, especially for high-resolution screens.
Preferences
The Preferences window contains all settings for the software, and is organised as follows:
Note that changes to Preferences are not applied immediately as you interact with the controls in
this window, because this could interrupt recordings that are currently taking place. Instead, use
the Save option in the File menu (Command-S on the keyboard), or click the Apply Preferences
button in the top right corner of the window, to apply any changes you make.
Preferences - General
This section contains general-purpose settings to configure the software:
System name
Specify a name that will allow you to easily identify your CCTV system. This name is used for the
web interface (e.g. shown by web browsers when asking for authentication), in our SecuritySpy
iOS/tvOS app, and in subject lines of emails.
Maintenance - Restart automatically after a crash
Every effort is made to ensure that SecuritySpy is as stable as possible, however since it relies on
other software components written by other parties (such as system software and driver software
for video input devices), stability cannot be guaranteed. Therefore it is possible, although
unlikely, for SecuritySpy to crash ("unexpectedly quit"), and if the computer may be left
unattended for long periods of time, this is a potential problem.
When this option is enabled, a background application is launched that monitors SecuritySpy and
restarts it if it crashes. This application runs invisibly and uses almost no system resources. If
SecuritySpy crashes while video is being captured, at most only a few minutes of video will be
lost.
Maintenance - Allow automatic computer sleep
The computer must be awake for SecuritySpy to operate, so if you want continuous operation you
should leave this option turned off. Use this option if you would like the computer to sleep
automatically when it is not being used (as per the settings in the Energy Saver system
preference).
Maintenance - Dismiss alert messages after 1 minute
If this option is on, all alert messages (such as error messages) will be closed after 1 minute. This
option should be enabled if the computer is to be left unattended.
https://bensoftware.com/securityspy/manual/ 18/43
12/9/23, 14:08 SecuritySpy User Manual
Maintenance - Display window for major error messages
Use this option to have a window appear on the screen to inform you of any major errors (these
include problems preventing SecuritySpy from obtaining video streams, or recording problems).
Maintenance - Send diagnostic information back to developer
If this option is on, SecuritySpy will send information back to us, the developers of the software,
once per day, to help us diagnose problems and improve the software. This includes system
setup information, error reports and performance data. This data is sent over an encrypted
connection, and we will never share this data with third parties.
Maintenance - Send anonymous images back to developer
If this option is on, SecuritySpy will send images back to us when motion is detected. By
analysing and categorising these images, we can use them to improve SecuritySpy's motion-
detection features. The images are scaled down to a small size and are sent infrequently over an
encrypted connection, so the transmission is secure and uses very little bandwidth. Apart from
the content of the images themselves, no identifying data is sent along with these images.
Maintenance - Check for software updates upon launch
If an update is available you will be offered the option to install it; updates are never installed
automatically without your permission.
Performance - Suspend motion detection when not needed
This option causes motion detection to be suspended when it is not required for triggering
Motion Capture and Actions, resulting in lower CPU usage.
Performance - Suspend video decoding when not needed
With this option off, SecuritySpy decodes all incoming video frames, whether or not each one is
actually required. The advantage of this is that decoded frames are available at all times, so if
images from a camera are suddenly required (e.g. a video window is opened), they will be
available immediately. Enabling this option can reduce resource usage, however this may result
in a significant delay until decoding can resume and the next frame is available.
To minimise delays, make sure the camera's key frame interval is not set too high (this is the
frequency of self-contained frames in the compressed video stream, otherwise known as the I-
frame interval, I-frame rate, GOV length or Intra frame period). A good setting is around three
times the frame rate of the stream, which will result in a maximum delay of three seconds (e.g. if
the camera is streaming video at 10 FPS, then set the key frame interval to 30).
This option can be especially beneficial if the features that require decoding are infrequently
used. These include motion detection, live video display, delivery via the web interface, and
recording to disk where SecuritySpy is performing recompression of the video stream.
Audio - Set computer to full volume before playing sounds
When enabled, the computer's main speaker volume will be automatically set to maximum before
playing sounds, and then set back to its original volume after the sound has played.
Audio - Hiss reduction
When enabled, low-level audio will be silenced, eliminating hiss and background noise from
microphones. This is useful for applications such as baby monitoring, where you may be
listening to the audio at night, or when multiple cameras are playing audio at the same time.
Audio - Mute incoming audio when sending audio to a camera
For cameras that support two-way audio, this option controls whether the incoming audio from
that camera is muted whenever you are sending audio to that camera. This prevents a feedback
situation where audio can pass from the Mac's microphone to the camera's speaker, to the
camera's microphone, to the Mac's speaker and back to the Mac's microphone in an infinite loop.
Audio - Two-way audio source and volume
This defines an audio input source connected to your Mac that is to be used for computer-to-
camera audio transmission. Use the round control knob on the right to adjust the audio volume.
Date format
Choose your preferred date format, which is used whenever a date is displayed (e.g. in
timestamps on video frames, and in file names).
Motion thumbnail crop
This adjusts the crop that is applied when generating images for iOS notifications and movie
thumbnails displayed via the web interface and iOS app: tighter crops are more "zoomed in" to
the area of motion, while wider crops show more of the surrounding area.
Password for settings changes
You can set a password here that will be required by anyone attempting to access settings or
disarm cameras. It is also advisable, in the Security & Privacy system preference, to set the Mac
itself to require a password after a short time of inactivity. While this doesn't prevent someone
from physically tampering with the computer, implementing these basic security precautions
provides a useful first layer of protection.
Password for quitting
You can set a password here that will be required by anyone attempting to quit SecuritySpy.
Preferences - Cameras
The Cameras section allows you to add and configure your cameras, and is further subdivided
into the following sections: Device, Setup, Triggers, Audio, Continuous Capture, Motion Capture,
and Actions.
To set the name of a camera, double-click on it in the list on the left of this window.
Address
Enter the IP address, hostname, or Bonjour address of the device. By clicking the Auto-
Discovered Devices button below this field, SecuritySpy will display a list of devices that were
discovered on your local network, for example:
Select a device from this list, and the Address field will be automatically populated with the
address of the selected device. This menu consists of two sections:
ONVIF Devices: this section lists all devices located via the ONVIF auto-discovery
mechanism. All ONVIF-compatible cameras connected to your local network will be
displayed here. By selecting a device from this list, the Address field will be populated with
the camera's unique identifier string ("UUID"). By referring to cameras by their unique
identifiers, SecuritySpy can locate cameras even if their underlying IP addresses change.
Bonjour Devices: Bonjour is a protocol for auto-discovery and addressing that removes the
need to use IP addresses. All Bonjour-compatible devices will be shown here — selecting
one from the list will populate the Address field with the Bonjour address of the device.
Both the above addressing methods remove the need to configure your cameras with fixed IP
addresses: for a camera that obtains an IP address automatically via DHCP (which is usually the
case), setup is simply a case of connecting it to your network and selecting it in the above list.
Many cameras support both ONVIF and Bonjour, so you may see two entires in the list for such
devices; in this case you can select either (though using the ONVIF address may be slightly faster
and more reliable in some circumstances).
In this menu, you will see a check mark (tick) next to devices that have already been added.
HTTP/RTSP ports
These are the network ports that SecuritySpy uses to communicate with the device. The standard
ports are 80 for HTTP and 554 for RTSP. If your device uses standard ports (most do), you can
leave these fields blank, but if it uses non-standard ports, you should enter them here.
You can also choose to enable SSL, which is a protocol that provides secure encrypted
communication with network devices. For devices that support this feature, SSL provides
additional security by preventing the decoding of intercepted data streams. It can therefore be
useful when transmitting data over the internet, but is typically not required when transmitting
over a local network (and, in fact, may prevent local network communication due to certificate
validity issues). In order to use SSL, the device should be set up with a valid SSL certificate that
matches the address that you enter into the Address field in the above window.
https://bensoftware.com/securityspy/manual/ 20/43
12/9/23, 14:08 SecuritySpy User Manual
Username / Password
If the network device requires authentication, enter its username and password here.
Profile
Most IP surveillance products sold in the last few years implement the ONVIF protocol, which is a
universal way of communicating with IP cameras. So, if your camera supports this, then you
should use the ONVIF profile in SecuritySpy. Alternatively, SecuritySpy has many profiles designed
specifically for individual camera makes and models, so check this list to find one to match your
device. Or, if you want to enter the HTTP/RTSP streaming request yourself, use the Manual
Configuration option.
If your device doesn't support ONVIF, and you are not sure which other profile to use, click the
Auto-Detect Profiles button. SecuritySpy will then test each profile in turn with your camera, and
will return a list of ones that work. Before you run this test, make sure that you have entered the
camera's address, ports, username and password correctly.
Format
This menu lists the available formats supported by the network device, which will be a
combination of the following:
Video compression codecs
JPEG - the simplest codec, which will give you low resource usage but large file sizes.
H.264 - a very efficient efficient codec; a good balance between complexity and bandwidth.
H.265 - the most efficient codec; the best one to use if supported by your camera.
Network transport protocols
HTTP - typically used to stream JPEG video; does not support audio.
RTSP - designed for video, and typically used for MPEG-4, H.264 and H.265 streaming; has
support for both video and audio streaming.
RTSP-over-HTTP - this has the advantages of both above formats, in that it is designed for
video streaming, supports both video and audio, and is easily transmitted across the
internet along with standard web traffic.
If you are connecting to a camera over a local network, then the H.264/H.265 RTSP formats are
typically the best ones to use. If connecting over the internet, then the H.264/H.265 RTSP-over-
HTTP format are most appropriate, if supported by your camera.
Video size
Enter a video size (resolution) to request from the device. If you leave these fields empty, the
default video size of the network device will be used. This setting is not available for all devices;
typically you will need to configure the device directly to set its video size.
Frame rate
Enter the frame rate at which you want the device to send video frames. This setting is not
available for all devices; typically you will need to configure the device directly to set its frame
rate.
Input or stream number
For devices that have multiple inputs or streams, here you can specify the one you want to use.
For example, some devices have multiple physical inputs or image sensors, while others have
multiple streams with different compression settings. This option will only be available if this
feature is supported by the device.
Request
This setting is available when you select Manual Configuration as the profile. This is the request
text that is sent to the device to instruct it to send media data. This setting is useful if you want
to use a network device that doesn't support ONVIF, and isn't supported under an existing
profile. Consult the documentation or manufacturer of your device for information about the
format of HTTP or RTSP requests it understands.
When camera manuals specify this information, they typically do so in the form of a URL, for
example:
rtsp://camera-address:port/request.h264
This indicates that the RTSP format should be used, with the RTSP port set to port, and
request.h264 as the Request.
Options - Recompress video data from this device
Network devices supply video data in a variety of compressed formats (typically JPEG, H.264 or
H.265). By default, the video data supplied by the camera will be captured directly from the
device to the movie files that SecuritySpy creates. This ensures optimum quality, performance
and lowest CPU usage. However, if you want SecuritySpy to apply a text overlay, a transformation
(rotation/flip), or a video blanking mask (to obscure sections of the image), or if you want to re-
encode the data to a more space-efficient format, then enable this option, and SecuritySpy will
use the settings set under the Compression section in order to recompress the data while
recording. Generally, if you require a text overlay, transformation or blanking mask, it should be
applied in the camera itself (if available there), rather than SecuritySpy, to avoid the need for
SecuritySpy to recompress the video data.
Options - Recompress audio data from this device
Network devices supply audio data in a variety of compressed formats (typically G.711, G.726,
AMR or AAC). By default, the audio data supplied by the camera will be captured directly from the
device to the movie files that SecuritySpy creates. This ensures optimum quality, performance
and lowest CPU usage. However, it may be useful to enable this feature in order to record with
AAC audio compression if your camera is not capable of providing this format, because when the
video format is H.264 or H.265 and the audio format is AAC, SecuritySpy can create MP4 files
instead of MOV files. MP4 files play back in web browsers, whereas MOV files generally will not,
so this is important if you will be viewing recorded footage via SecuritySpy's web interface.
https://bensoftware.com/securityspy/manual/ 21/43
12/9/23, 14:08 SecuritySpy User Manual
Choosing and configuring your network devices
Please see the Network cameras section of the SecuritySpy Installation Manual for comprehensive
information on this topic.
https://bensoftware.com/securityspy/manual/ 22/43
12/9/23, 14:08 SecuritySpy User Manual
A trigger is any event, such as video motion detection, audio detection, or input from a sensor,
that causes either Motion Capture or Actions for a camera.
Video trigger
The video motion detection feature analyses incoming video streams to detect movement. If you
have selected Motion Detection - All Movement as the trigger, then movement of any kind will
generate a trigger. If you have selected Motion Detection - Specific Objects, these images are
then passed to an AI algorithm for object detection. The AI can significantly cut down or even
eliminate false-positive detections, by generating triggers only when the selected objects of
interest are detected. Here is a summary of how this process works:
The cropped image is passed to the AI, which detects the presence of
humans, vehicles and animals. The AI is an image classifier which is a
type of Convolutional Neural Network (CNN).
On modern Macs, especially those with Apple Silicon chips, the AI runs extremely quickly, but on
older Macs it can use significant system resources. Best results are obtained by using high-
https://bensoftware.com/securityspy/manual/ 23/43
12/9/23, 14:08 SecuritySpy User Manual
quality high-resolution cameras in good lighting conditions, and following the advice under
Achieving Effective Motion Detection.
Motion Mask
Video motion detection works in conjunction with a mask that you can draw onto the video
image in the above window. The mask defines areas in the image to be ignored by the motion
detection algorithm. This is useful to exclude moving objects that you want to prevent from
generating triggers, like trees swaying in the wind.
Advanced Trigger Options
The default parameters should work well in most situations, but this panel allows you to
customise some further motion detection settings, including:
Sensitivity - the higher this value, the more sensitive the algorithm is to small amounts of
movement, but this will also increase the number of false-positive triggers.
Trigger duration - this specifies the minimum duration of continuous motion that will result in a
trigger. The most sensitive setting is 1 frame, which will trigger if there is motion detected in a
single video frame. However, this is likely to produce many false-positive triggers due to rain,
lighting changes, insects and other transient motion. A trigger duration of around 1 second for
indoor use or 1.5 seconds for outdoor use is normally optimal: this provides a low false-positive
rate while still being highly sensitive to real motion. Note that this feature works best when the
frame rate of the incoming video is at least 5fps.
Ignore whole-frame motion - if enabled, changes that are evenly spread across the whole image
will not cause a trigger. Such motion is typically the result of transient lighting changes, camera
day/night mode changes or camera exposure changes, and can be a source of false-positive
detections if this option is off.
Audio level detection
This option generates a trigger when the audio level reaches a specified threshold (which can be
set in the Advanced Trigger Options panel). To use this feature, an audio source must be enabled
for this camera under Audio.
Camera input ports
This option generates triggers from camera input port events. IP cameras often have ports
(sometimes called IO Ports, Alarm Inputs, External Inputs, or Digital Inputs) that can be
connected to sensors such as PIR (Passive Infra Red) motion sensors, glass break detectors,
door/window sensors etc. SecuritySpy supports the input ports of Axis, D-Link, Canon and
Hikvision cameras.
Camera PIR sensor
This option generates a trigger when the camera's built-in PIR sensor detects motion. This is
currently supported for Hikvision cameras only.
Camera motion detection
This option generates a trigger when the camera's on-board motion detection algorithm detects
motion. This is currently supported for Hikvision cameras only.
Home Trigger
This option generates triggers from Home events. First, configure a Home trigger in HomeHelper,
and then select it here - see Home Integration for more information.
Movie search metadata
These options determine which metadata is saved to captured movie files in order to allow
subsequent search of captured footage (see the Browser feature for information about how movie
search works). If the Save motion data option is enabled, all motion events are saved to the
captured movies, allowing search based on motion. If the Save AI data option is enabled, then the
AI is run whenever motion is detected and the results are saved. This allows searching for
humans, vehicles and animals in captured footage.
https://bensoftware.com/securityspy/manual/ 24/43
12/9/23, 14:08 SecuritySpy User Manual
Audio Source
Choose an audio input device to associate with this camera. Typically, for IP cameras, you will
want to use the option "This network device", which indicates that SecuritySpy should take the
audio feed from the camera itself.
This menu also lists all available local audio devices attached to your computer (built-in, USB,
FireWire and Thunderbolt audio inputs), and you can associate any of these audio inputs with any
camera.
Input
If the audio device has more than one data source, these are listed here. For example, most
built-in audio inputs in Mac computers have two data sources: Line In and Digital In; to use an
analog audio source you would select Line In, or to use a digital source you would select Digital
In.
Sample rate
This is the main factor that determines the quality of the audio - the higher the sample rate the
better the quality, but the larger the captured files. A sample rate of 8000 Hz is normally
adequate for video surveillance, though if you want higher quality, a setting of around 16000-
22050 Hz will provide a significant improvement.
Left/mono channel, Right channel
Each camera can use one or two of the audio device's channels. Using the left and right channel
menus, you can select which channel on the device (numbered in the menu) is recorded to which
channel in the captured movie (left or right). For example, if the audio device has 10 input
channels and you want input 5 recorded to the movie as the left channel and input 6 recorded as
the right channel, you would select 5 and 6 in these menus respectively. To simply record people
speaking, only mono (one channel) audio is required, in which case you should select "None" for
the right channel. If you are using stereo audio (two channels), this doubles the size of the audio
data, so use this only if you need to.
Recording options
You can choose whether to include audio in continuous-capture recordings and/or motion-
capture recordings. By default, both options are enabled.
https://bensoftware.com/securityspy/manual/ 25/43
12/9/23, 14:08 SecuritySpy User Manual
https://bensoftware.com/securityspy/manual/ 26/43
12/9/23, 14:08 SecuritySpy User Manual
Preferences - Cameras - Motion Capture
This section contains settings for the motion-capture recording mode, which captures movies or
images in response to the motion triggers configured under the Setup tab:
https://bensoftware.com/securityspy/manual/ 27/43
12/9/23, 14:08 SecuritySpy User Manual
Play sound
As well as the standard system sounds, there are several built-in sounds designed to scare off
intruders, and you can add your own by placing sound files in SecuritySpy's Sounds folder (to
locate this folder, click on the file File menu and select Reveal Folder in Finder / Sounds). Most
sound formats are supported, including AIFF, WAV, MP3, and AAC.
You can also specify a duration and volume for the sound that is played. The sound will continue
for the specified number of seconds after the trigger has stopped (e.g. after motion has finished).
Run script
To create your own scripts, use the Script Editor application that comes with macOS. Place your
scripts in SecuritySpy's Scripts folder to make them available to invoke as actions (to locate this
folder, click on the file File menu and select Reveal Folder in Finder > Scripts). A few scripts are
included with SecuritySpy, including ones that control switch/relay devices that can trigger
external devices such as lights and alarms. The built-in scripts work with WebRelay and Web-i IO
devices.
Three parameters are passed to these scripts:
The camera number
The camera name
The reason for the trigger, which is a comma-separated list of the following reasons:
Motion,Audio,Script,CameraEvent,WebEvent,OtherCamera,Manual,Human,Vehicle,Animal
Home Action
Here you can select one of the Home actions that you have created in order to control Home
accessories. See Home Integration for more information.
Send email to
This feature sends an email, optionally with attached JPEG images, to an address you specify. To
send the email to multiple addresses, enter them separated by commas.
Run shell command
Any shell command (i.e. anything you can type into the Terminal on your Mac) can be entered
here. Click the popup button to the right of this box for some examples, including:
HTTP GET request
HTTP POST request
IFTTT request (If This Then That)
Execute a ".sh" Bash/shell script
Say some words (via text-to-speech)
To issue multiple commands, put them all directly into this field separated by semicolons, or
create a ".sh" shell script file. When creating a script file, you will need to set its permissions (just
once) to allow it to be run, using the following Terminal command:
chmod +x path/to/script.sh
Trigger other cameras
This setting allows you to trigger recording in one camera based on a motion trigger in another.
This could be useful for when you have multiple cameras covering the same area, and want
recording to take place in all the cameras when any one detects motion, thereby increasing the
chance of capturing something interesting.
Video display - Come to the front and open this camera's video window
If enabled, whenever there is a motion trigger for this camera, SecuritySpy will come to the front,
above all other applications, and will display the camera's video window.
https://bensoftware.com/securityspy/manual/ 28/43
12/9/23, 14:08 SecuritySpy User Manual
Video display - Wake the screen and dismiss the screensaver
If enabled, whenever there is a motion trigger for this camera, all screen(s) will be woken and any
screensaver currently running will be quit.
Video display - Highlight camera with red box
If enabled, whenever there is a motion trigger for this camera, a red box will be shown around
the camera's image in all video windows, for the number of seconds specified.
macOS notification
If enabled, SecuritySpy will generate macOS notifications, which are displayed for a short time in
the top-right corner of your screen, and appear in Notification Center.
Action delay
This option allows you to specify a delay in seconds after a motion trigger, before performing
any of the actions
Action reset time
Once the actions are triggered, this delay specifies the minimum time before they can be
triggered again. Without this delay, an action could be invoked many times in quick succession if
there is lots of motion, which is usually undesirable. Therefore, it is advisable to specify a delay
here of at least the length of a typical motion detection event.
Preferences - Display
This section allows you to choose options for live video display, and configure groups of cameras
that can be displayed via their own Group Windows. For large installations, organising the
cameras into logical groups in this way makes working with them much more manageable.
Display type
Choose how you want cameras to appear in Group Windows:
Display cameras in grid - just like the All Cameras window, the Group window will display all its
member cameras at once, in a grid arrangement.
Cycle between each camera - this option will display one camera at a time, sequentially.
Cycle between groups of four cameras - this option will display four cameras at a time,
sequentially in groups of four.
Cycle time
Specify the number of seconds between cycles, when using either of the Cycle display options.
Cameras
Simply enable the checkbox next to each camera you want to include in the group.
https://bensoftware.com/securityspy/manual/ 30/43
12/9/23, 14:08 SecuritySpy User Manual
Times when cameras will be armed are represented as red "time objects". Each time object has a
start and end time, which define when the camera will be automatically armed and then
automatically disarmed. Click and drag to create new time objects, or to move or edit existing
time objects. To remove a time object, select it and press the delete key on the keyboard.
In the above example, the camera will be armed during office hours on weekdays only.
SecuritySpy doesn't need to be running before the start time of a time object — if you launch it at
any time marked red on the schedule, all cameras using the schedule will be armed
automatically.
Clicking the "Advanced Schedule Options" button allows you to configure some additional
options, as follows:
The options allow you modify the built-in sunrise/sunset schedules so that recording starts a
certain number of minutes before or after sunrise or sunset. For example, if you want recording
to start 5 minutes before sunrise, then you should set the Sunrise offset time for the Armed
Sunrise To Sunset schedule to -5.
Determining sunrise and sunset times requires accurate location and time information. If you
plan to use these schedules, check the Date & Time System Preference to make sure your Mac's
location and clock are set correctly.
https://bensoftware.com/securityspy/manual/ 31/43
12/9/23, 14:08 SecuritySpy User Manual
Preferences - Scheduling - Schedule Presets
A schedule preset defines a set of schedules that will be applied to your cameras when the preset
is invoked. For example, a "Home" and "Away" preset can define different sets of schedules to
use when a property is occupied vs. when it is empty.
For each camera, you can define a schedule or you can specify "No Change" to indicate that a
particular camera's schedule should not be changed when the preset is applied.
Schedule presets can be invoked manually from the Control menu, web interface or iOS app, or
automatically via the specified Home trigger - see Home Integration for more information.
Preferences - Storage
This section allows you to manage global storage settings for captured files.
https://bensoftware.com/securityspy/manual/ 32/43
12/9/23, 14:08 SecuritySpy User Manual
Alternatively, if you want to set capture destinations for specific cameras, you can do this under
Preferences - Cameras - Setup.
Delete files older than specified age
When enabled, captured files older than the specified number of days will be deleted
automatically.
Delete old files when free space drops below threshold
When enabled, old captured files will be deleted when available disk space drops below the
specified thresholds. The automatic thresholds, which should work well for most disks, are set at
8% total disk capacity for the system volume and 2.5% for other volumes.
Exclude from Auto-Delete
The Browser feature allows you to assign coloured tags to captured files, to mark them out as
files of interest. With this option, you can prevent files with certain tags from being automatically
deleted, even if they would otherwise satisfy the auto-delete settings set above.
Volume mount timeout
When SecuritySpy starts up it attempts to mount any disk that contains a camera's custom
capture destination. This can take some time, depending on the type of disk and its current
state. This option allows you to specify a maximum time that SecuritySpy will wait; if the disk is
still not available after this time, SecuritySpy will switch to the default location on the system
volume (~/SecuritySpy/Captured Files/). When the disk containing the custom capture
destination subsequently becomes available, SecuritySpy will automatically switch back to it.
Usage warning threshold
If the available space on any volume used by SecuritySpy drops below this threshold value, a
warning will be generated. This warning is written to the log file (available from the File menu),
and will also be emailed to the address specified in the General Preferences for error/warning
notification emails. To disable these warnings, specify zero for this value.
Preferences - Compression
This section allows you to specify the video and audio compression that will be performed for
any camera set to be compressed by SecuritySpy. This applies in the following cases:
Local video devices, such as USB, FireWire and Thunderbolt devices, and built-in FaceTime
cameras, supply uncompressed video, which needs to be compressed by SecuritySpy for
recording to movie files.
Network video devices supply compressed video, and by default SecuritySpy will record this
directly to captured movie files. However, for any camera for which you have enabled the
Recompress video data and/or Recompress audio data options in the Cameras - Device
settings, its video and/or audio data will be compressed by SecuritySpy using the Video
compression and Audio compression options set in this section.
For any network camera that is supplying H.264 or H.265 video data, for optimum quality and
performance, you should not enable the Recompress video data option in the Cameras - Device
settings unless you need to do so for some specific reason (e.g. you want SecuritySpy to add a
date/time overlay on the video stream and the camera is incapable of doing this).
Limiting the use of audio recompression is less important, because it requires much less CPU
time than video recompression. Ideally, your cameras can supply audio in AAC format, but for
any camera that cannot, you might want to set SecuritySpy to re-encode to AAC format. The
advantage of recording AAC audio is that SecuritySpy can then create MP4 movie files (rather
than MOV movie files), which are much more compatible for playback by web browsers. If you
don't need to play back the captured files in web browsers, then it's best to leave the Recompress
audio data option turned off.
https://bensoftware.com/securityspy/manual/ 33/43
12/9/23, 14:08 SecuritySpy User Manual
https://bensoftware.com/securityspy/manual/ 34/43
12/9/23, 14:08 SecuritySpy User Manual
vary from camera to camera). A value of around 50 gives reasonably good quality audio at an
efficient bitrate.
JPEG Compression
This allows you to select the compression quality used for email attachments and still image
files. Higher values result in better visual quality but larger file sizes.
Video compression for web streaming
This allows you to select the compression quality used for video streams sent via the web
interface. Higher values result in better visual quality but higher network bandwidth usage.
Preferences - Uploads
This section allows you to specify settings for FTP uploads to remote servers, which is useful for
off-site backup of footage. The same FTP server with different paths may be used for different
upload destinations, so one camera can be set to upload to a particular directory on the server
and another camera to a different directory on the same server. To check directory paths and
download or delete files, you will need to use a graphical FTP client utility such as Cyberduck.
Protocol
Choose from the following protocols:
FTP: this is the standard unencrypted file transfer protocol. It is widely supported and
reliable, however being unencrypted is not as secure as the following two protocols.
FTPS: sometimes called FTP-SSL, this is the secure encrypted version of the FTP protocol.
Unfortunately it is not very widely supported.
SFTP: sometimes called SSH File Transfer Protocol, this is a widely-supported secure file
transfer protocol that provides secure encrypted communication. This is generally the one
to use when you want encryption.
Amazon S3: the Simple Storage Service provided by Amazon and other companies.
Server address
For FTP, this is the hostname (e.g. ftp.example.com) or IP address (e.g. 192.168.1.1) of the
server.
For S3, this can be left blank if you using Amazon's S3 servers. If, however, you are using a
different S3 cloud storage provider (e.g. Backblaze B2), you will need to enter the S3 endpoint
address provided by your cloud storage company.
S3 bucket
Enter the S3 bucket name here (this setting is only available if you have selected S3 as the
protocol).
Server path
For S3, this is the path within the specified bucket where the file should be uploaded to.
For FTP, If you specify a path that starts with a forward slash character, this denotes an absolute
path from the server's root directory. A path that does not begin with a forward slash character
denotes a relative path from the default directory. The default directory depends on the server -
generally each user has a folder on the server which is used as the default directory and set
automatically by the server when that user logs in.
For example, consider the following directory layout:
https://bensoftware.com/securityspy/manual/ 35/43
12/9/23, 14:08 SecuritySpy User Manual
If you were to log in as user1, the server will most likely set the initial directory as /pub/user1/.
In this case, to have images uploaded to the user1 directory, you could either leave the path field
empty, or you could specify "/pub/user1/" to be explicit. To have images uploaded to the
"images" folder within the "user1" folder, you could specify either "/pub/user1/images/" or
simply "images" for the path (in all cases it doesn't matter whether you put a forward slash at the
end of the path or not). Generally, you should let the server decide the default directory and use
a relative path, unless you have a specific reason to use an absolute path.
If the specified directory does not already exist on the server, SecuritySpy will create it.
Append camera name to path
Enable this option to automatically append camera names to the server path, so that each camera
will upload to a separate folder on the server.
Append day folder name to path
Enable this option to automatically append day folder names to the server path, so that files for
each day will be placed in separate folders on the server. Day folder names comprise the date
when the file was created, in the format YYYY-MM-DD.
Local File System Copy
The Local File System Copy option in the Protocol menu can be used to copy files to a drive
attached to your Mac, rather than to a remote server. Paths to folders on the local file system
typically start with /Volumes/VolumeName/… to refer to a folder on an attached volume, or
/Users/UserName/… to refer to a folder within your user directory — drag a folder from the
Finder into the Path box to have the path filled out automatically.
Status
To see the status of current uploads at any time select Uploads from the Window menu.
Preferences - Email
This section allows you to specify settings for sending emails:
Number of images
When an email is sent in response to a motion trigger on a particular camera, this setting defines
now many JPEG images from the camera will be attached to the email.
Image capture rate
This defines the frame rate at which images are added to motion-triggered emails.
Image size
You can send images at full size, but with high-resolution cameras this can result in large emails
that are slow to transfer. To keep email sizes small and transfer speeds high, choose a smaller
size from one of the available options.
https://bensoftware.com/securityspy/manual/ 36/43
12/9/23, 14:08 SecuritySpy User Manual
Subject text
This is the subject field that is used for emails triggered by motion detection. If you leave this
blank, a subject will be created automatically. When specifying a custom subject, you can enter
+d for the current date and time, and +n for the camera name.
Send error reports
Use this option to have error reports sent to an email address whenever any problem occurs. You
can enter multiple email addresses, each separated by a comma. You also have the option of
receiving warning messages - these are advisory messages that inform you of potential problems
such as high memory or CPU usage.
In all cases, all errors are written to a log file that you can access from the File menu in
SecuritySpy.
Send daily statistics
When this option is used, SecuritySpy will gather various statistics, including the number of files
created, the amount of data recorded, and camera uptime. At midnight, a report will be sent by
email containing a summary of this information. This is useful for quickly confirming that your
system is performing as expected. You can enter multiple email addresses, each separated by a
comma.
Send downtime warnings
Use this feature to receive email notifications when some kind of problem causes SecuritySpy to
stop running, in the case where you want to run SecuritySpy continuously with no downtime. This
feature works by sending frequent "heartbeat" messages to one of our Internet servers. If these
messages stop, our server will send you warning emails. Assuming you have taken the steps
outlined in the section Setting up SecuritySpy for Autonomous Operation, then SecuritySpy
should be running all the time, and any significant period of downtime could be the result of a
software error, disk failure, computer problem, power outage, or Internet disconnection. If your
system goes down, you will be sent a warning email after 20 minutes, then 1 hour, then 6 hours,
then daily for 5 days. You can enter multiple email addresses, each separated by a comma.
Email sending method
By default, SecuritySpy will use its own email relay service, which requires no configuration. This
service is provided by us, and its usage is free for all SecuritySpy users (though we do limit the
size and frequency of emails in order to ensure good performance for all users).
The other option is to use your own SMTP server — this requires configuration as follows:
Preferences - Web
SecuritySpy features a built-in web server that allows you to view live camera streams, download
captured footage, change settings and control the software, all from a remote location over a
local network or the Internet.
https://bensoftware.com/securityspy/manual/ 38/43
12/9/23, 14:08 SecuritySpy User Manual
http://example.viewcam.me:8000
https://example.viewcam.me:8001
Note that local network addresses won't work from the Internet, and Internet addresses may not
work from within your local network (depending on your router).
Click the How Do I Access This Server? button to get a list of the addresses you can use to access
your SecuritySpy server from your local network and from the Internet. If you need to configure
your Mac's LAN IP address, you can do so via the Network pane of the System Preferences.
HTTPS Keys and Certificates
Secure servers require a certificate and private key in order to perform the encryption and
identify the server. SecuritySpy gives you a few options for this:
1. Automatic: SecuritySpy integrates with Let's Encrypt, a free automated open certificate
authority, to obtain a valid certificate for you. All you have to do is set up a DDNS name (see
below), and SecuritySpy will attempt to automatically obtain a certificate in this name. Make sure
to pick a DDNS name that you are happy with, because if you change this in the future, there will
be a delay of one day before a new certificate will be obtained in the new name. This is to comply
with rate limits imposed by Let's Encrypt on their service.
2. User-supplied: You can purchase an official certificate to use with SecuritySpy. This is useful if
you want an official certificate but don't want to use SecuritySpy's DDNS feature (e.g. you have
your own domain name that you want to use instead). In order to use a certificate obtained from
a certificate authority, first you will need to generate a private key and a certificate signing
request (typically using OpenSSL via the Terminal - instructions should be provided by the
certificate authority). You send the certificate signing request to the certificate authority and they
send back a signed certificate. Place the private key, main certificate, and any intermediate
certificates into the SecuritySpy folder within the Home folder (i.e. ~/SecuritySpy/), and then quit
and relaunch SecuritySpy.
See this blog post for further instructions: How to purchase and install an SSL certificate for
SecuritySpy
When supplying a private key, it must be as follows:
The file name must be "server.key"
The format must be PEM or binary DER
The key must have no password requirement.
When supplying a certificate, it must be as follows:
The file name must be "server.crt"
The format must be PEM or binary DER.
Intermediate certificates:
Your certificate may come with intermediate certificates, which make up the "certificate
chain"
If you have been provided with a "ca-bundle" file, place this into the SecuritySpy folder
Otherwise, place all intermediate .crt and .pem certificate files into the SecuritySpy folder
Make sure not to include any .crt or .pem files that aren't linked to your main certificate
3. Self-signed: If SecuritySpy is unable to obtain a Let's Encrypt certificate, and you have not
supplied a certificate yourself, then SecuritySpy will automatically generate a self-signed
certificate. Self-signed certificates provide the same level of encryption as an official certificate,
however they do not provide the same level of assurance to the client regarding the authenticity
of the server, hence a web browser connecting to such a server will display a warning to this
effect. For SecuritySpy however, you are the one setting up the server and so you can be certain
about its authenticity, therefore the use of a self-signed certificate for SecuritySpy is entirely
suitable, and you can simply ignore the warning displayed by the web browser.
In all cases, the address you use to access SecuritySpy should match the certificate's hostname
(e.g. the DDNS name that you have set up), otherwise you will get a warning from the web
browser about a hostname mismatch. Therefore, if you are connecting to SecuritySpy's HTTPS
server over a local network using an IP address or Bonjour name, you will get a warning about a
hostname mismatch, so you may prefer to use the standard HTTP interface for local connections
— in this case the traffic is contained within your own local network, so the use of encryption is
less important.
Automatic port forwarding
To allow access to SecuritySpy from the Internet, your router must be configured to forward
incoming connections to SecuritySpy. Use these options to enable automatic port forwarding for
the HTTP and/or HTTPS port. For this to work, your router must support, and have enabled,
either NAT Port Mapping Protocol (NAT-PMP), or Universal Plug and Play (UPnP). Almost all
routers support at least one of these protocols, but not all have this function enabled by default.
IMPORTANT: when using this feature, your SecuritySpy web server becomes much easier to
access from the Internet, so for security you should create a web server account with a
strong password to prevent unauthorised access.
https://bensoftware.com/securityspy/manual/ 39/43
12/9/23, 14:08 SecuritySpy User Manual
strong password to prevent unauthorised access.
HTTPS security level There are a variety of different cryptographic protocols that can be used
for a secure HTTPS connection; these are negotiated between the client and server whenever a
new connection is made. Many older protocols (such as RC4, MD5 and DES) have been found to
have security flaws, and therefore should be avoided if possible. The higher this security level
setting, the more of these older protocols are disabled: this removes vulnerabilities, but may
prevent older clients from being able to connect. We recommend that you choose the highest
security level, unless you need to reduce this to allow connections from older clients.
Advertise this web server via Bonjour
Bonjour is a method of "zero configuration" network setup, which makes it easy to find devices.
Enabling Bonjour allows web browsers, iOS apps, and other instances of SecuritySpy to easily find
your SecuritySpy server on the network.
SecuritySpy uses the server name text (see above) as its Bonjour name. Note that if you have
enabled the macOS firewall feature on the computer running SecuritySpy, this may prevent
Bonjour from working properly. Therefore you may have to disable the firewall if you want to use
Bonjour to connect to SecuritySpy servers. The firewall settings are accessible in the Security &
Privacy System Preference.
Make movies Fast Start on-the-fly
Normally, QuickTime movies and MP4 files have a movie resource at the end of the file (the
movie resource holds necessary information about all the frames in the movie and therefore has
to be written to the file last, after all the frames have been written). This works well when the
movie is on a local drive because the movie resource is instantly accessible, however if the movie
is being received from a slower source such as the Internet the whole movie must be downloaded
before it can be played, which may take some time. In Fast Start movies, the movie resource is at
the beginning of the file so that the movie can start to play before it has completely downloaded.
If this option is enabled, the movie resource will be read from the end of the file and sent first, so
the movie will be Fast Start when it is received by the client computer.
Write log file of all connections
When enabled, SecuritySpy will create a text file containing information about every connection to
the web server, including the connection time, the client's address, and the requested page. To
view the log, select the "Open Web Log" option from the File menu in SecuritySpy.
Allow Screen Control for Administrator accounts
When enabled, Administrator accounts are allowed to control the Mac's screen via the web
interface (just like Screen Sharing or TeamViewer). Due to the level of access that this feature
provides, it is only available to Administrator accounts, and is turned off by default. This option
is extremely useful if your Mac is running as a dedicated server, as it allows full remote
administration of the Mac.
Accounts
To enable password protection to restrict access to your SecuritySpy web server, you must add at
least one account; if you don't create any accounts, there will be no password protection. If
your SecuritySpy server will be accessible from the Internet, we strongly recommend that you
enable password protection.
https://bensoftware.com/securityspy/manual/ 40/43
12/9/23, 14:08 SecuritySpy User Manual
Username / Password
Enter the username and password that will be required to log in with this account. The username
is not case sensitive, but the password is; both can be up to 31 characters long.
Video stream duration limit
Specify a number of seconds after which to cut off any live video stream being viewed via this
account.
Timed daily access
This setting allows you to restrict access to the web server via this account to certain times of the
day.
Permission level
There are a few preset permissions levels, and a fully customisable one, as follows:
View - the user can view live video from any camera.
View, Download - the user can view live video, and download previously-captured footage for
any camera.
View, Download, control PTZ - the user can view live video, download previously-captured
footage, and control Pan/Tilt/Zoom for any camera.
Administrator - the user has full access to every web server feature.
Custom - under this setting, you can specify which features of which cameras the user has
access to. Select the camera(s) for which you want to allow certain actions, and set the
permissions accordingly. Select the All cameras option to set permissions that will apply to all
cameras — this makes it easy to give a particular user a certain level of access for all cameras,
while still being able to apply additional permissions for individual cameras.
Accessing SecuritySpy from the Internet
For instructions on how to set this up, please see the Remote Access section of the SecuritySpy
Installation Manual.
https://bensoftware.com/securityspy/manual/ 41/43
12/9/23, 14:08 SecuritySpy User Manual
SecuritySpy has this functionality built in: simply click the SecuritySpy menu (top left of the
screen, next to the Apple menu) and select the Install NTP Server option. This installs a
background daemon on your Mac that runs continuously and provides NTP services to your
network. Simply provide the IP address of your Mac as the NTP server address to your cameras
(note that your Mac must have a manually-assigned IP address or at least a DHCP reservation in
your router for this to work, otherwise its IP address may change from time to time).
After installing the NTP server, you can test it by opening Terminal (you will find it in your
/Applications/Utilities/ folder) and entering the following command:
sntp localhost
sntp is a tool that queries NTP servers, and localhost refers to "this machine". On macOS 10.15
and earlier, the response will be a timestamp in this form:
2021-06-25 08:34:41.206904 (-0100) -0.020317 +/- 0.017639 localhost 127.0.0.1 s3 no-leap
On macOS 11 and later, the response will be in this form:
-0.005876 +/- 0.005875 localhost 127.0.0.1
Either type of response indicates that the NTP server is working.
Licensing
You can purchase a license of SecuritySpy from the SecuritySpy Online Store.
SecuritySpy licenses are available in the following fixed steps of numbers of cameras: 1, 4, 8, 16,
32 and unlimited. Each license can be used on a single Mac only, and licenses cannot be
combined (for example, if you have 12 cameras, it is not possible to combine an 8-camera and a
4-camera license; in this case you will need a 16-camera license).
If you purchase now and then need to add more cameras in the future, you can upgrade your
license at the SecuritySpy Upgrade Store. The price you pay for the upgrade is simply the
difference in price between the license you are upgrading from and the license you are upgrading
to; there is no price penalty for buying now and upgrading later.
Any cameras added to SecuritySpy beyond your licensed limit will operate in "view only" mode -
you will be able to view live video from these cameras, but no other features will be available for
them (recording, actions, web access etc.).
Support / Help
When SecuritySpy encounters an error, it reports the error in its log file and continues to run. For
example, such errors may include problems with video input devices, FTP upload errors, or errors
sending emails. If you encounter any sort of problem while using SecuritySpy, you should check
the log to find out more information about what happened. To open the log file, select Open Log
from the File menu.
For information about how to choose, install and set up the hardware of your video surveillance
system, see the SecuritySpy Installation Manual.
For up to date troubleshooting and help please see the SecuritySpy online help pages.
If your question is not answered in the online help pages, please email it to
[email protected].
To find out which specification of computer is required for a particular camera setup, see the
SecuritySpy System Requirements Calculator.
https://bensoftware.com/securityspy/manual/ 42/43
12/9/23, 14:08 SecuritySpy User Manual
https://bensoftware.com/securityspy/manual/ 43/43