User Manual
for version 3.4.10

Author: Ben Bird

Web | Store



Getting Started




Video Device Settings
Camera Settings
Email Settings
FTP Server Settings
Text Overlay Settings
Compression Settings
Schedule Settings
Web Server Settings
Group settings



Network Devices


Pan/Tilt/Zoom (PTZ)

Using SecuritySpy as a video server

Setting up SecuritySpy for autonomous operation

Optimising Performance

Support / help

Appendix 1: Error codes

Appendix 2: Built-in web server HTTP interface


SecuritySpy is a multi-camera video surveillance application for the Macintosh.

This software will enable you to set up a comprehensive and effective surveillance system quickly and easily. The motion detection feature means that you can choose to capture footage only when there is some activity to record. In addition, you can use the timelapse feature to record continuously.

Unlike traditional analog CCTV systems, there is no need for bulky tapes to change nor for spending hours viewing the captured video. SecuritySpy also offers better image quality and much more convenient access to your captured footage.

A major advantage of using SecuritySpy is the Web Server feature, which allows you to access your surveillance system over the Internet or over a local network using a web browser.

If you are building a video surveillance system from scratch all you need is SecuritySpy, a Macintosh computer, and one or more cameras (digital cameras, analog cameras with video input devices, or a combination of the two). If you have an existing system using analog cameras, SecuritySpy will enable you to upgrade to a computer-based digital system whilst still retaining your existing cameras and cabling.

SecuritySpy's flexibility will allow you to set up a system tailored for your individual needs. Whether you want a single camera or many dozens, SecuritySpy is ideal, for both domestic and business purposes.

This manual describes how to use the SecuritySpy software. For information about how to choose, install and set up the hardware of your video surveillance system, see the Installation Manual instead.

The main features of SecuritySpy are:

• Displays and captures live video from multiple cameras simultaneously
• Supports Macintosh-compatible video and audio input devices
• Supports network video devices (ONVIF, Axis, JVC, Panasonic, Pixord, D-Link etc.)
• Motion Detection and Timelapse capture features, with audio
• Built-in web server for remote viewing and administration
• Pan/Tilt/Zoom (PTZ) support for many network cameras
• Powerful real-time compression for efficient storage of captured footage
• Broadcasting support for powerful video delivery via QuickTime Streaming Server (QTSS)
• FTP upload feature for off-site storage of captured footage
• Motion-triggered email notifications
• Pre-capture buffer to capture video before the time of motion
• Browser feature for playback of captured footage, with synchronised multi-camera playback

Getting Started

When you first open SecuritySpy it will display, in the main video window, video from all local video input devices that are connected to your computer. To adjust settings for the local video devices, or to add network video devices (such as network cameras and video servers), go to the Video Device Settings window (available from the Settings menu). From this window you can choose settings for the devices, such as video size and format.

SecuritySpy makes a distinction between "video devices" and "cameras", because there is not always a one-to-one relationship between the two. For example, when used with a quad processor, one video device can supply four separate cameras. Therefore the Video Device Settings window contains settings for the video input devices, while the Camera Settings window contains settings for each individual camera (motion detection, recording parameters, FTP uploading, email etc.).

Passive mode and Active mode
Each camera has two modes of operation: passive mode and active mode. Passive mode is basically preview only. When set to active mode, all the capture features as set up in the Camera Settings window are activated (such as movie/image capture, FTP uploading, actions etc.). You can use the Control menu or the Camera Status window (below) to set the mode of a camera to active or passive. When set to active mode, the camera will remain in active mode (even across program restarts) unless there is some error that prevents it running in active mode. There is also a schedule feature available from the Camera Settings window to automatically activate a camera at specified times.

Video windows
The main video window shows video from all the cameras - to open this select Main video window from the Window menu. Here is an example of the main video window displaying six cameras:

SecuritySpy also allows you to create any number of Group windows that contain whichever cameras you choose to add to them. This is useful in a large installation to organise cameras into logical groups.

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 image in the main video window or group window, or by double-clicking on a camera name in the Camera Status window.

All video windows can be resized to any shape and size by clicking and dragging on any side of the window. Click the green button in the title bar of the window and the window will automatically resize for optimum display.

Full screen mode
Enter full screen mode using the option at the bottom of the Window menu. 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.

Camera Status window
The Camera Status window is available by selecting Camera Status window from the Window menu:

For each camera this window shows the camera name, the capture status, the motion bar, audio level, and the mode (active or passive). The capture status area shows any timelapse or motion detection captures in progress: "TL" indicates a timelapse capture and "MD" indicates a motion detection capture. If the status is "Idle" then no video is being captured.

Click the speaker icon () to the left of the audio level to play a camera's sound through the computer's speakers. In the above example, the first three cameras have audio and the "Front door" camera's audio is currently being played.

Click the mode of a camera and a menu will pop up allowing you to change the mode to active or passive.

To change the order of the cameras, click and drag the camera names in the above window. This affects the order in which the cameras are displayed in video windows, in the Camera Settings window, and through the built-in web server.

Error reporting
When SecuritySpy encounters an error that is not fatal it reports the error in a log file and continues to run. These include errors from video input devices, FTP upload errors, errors sending emails, and errors playing sounds. If you encounter an error 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.


The main configuration windows are as follows:

Video Device Settings - settings for video input devices
Camera Settings - settings for cameras (motion detection, capture settings, actions etc.)
FTP Server Settings - destinations for uploading images using FTP
Overlay Settings - configure the text overlay (for example date/time information) that is drawn onto video frames
Preferences - general settings
Compression Settings - compression used for video, still images, and audio
Schedules - create and edit schedules for automatic activation of cameras
Web Server Settings - settings for the built-in web server
Group settings - allows you to set up groups of cameras that can be displayed together


Video Device Settings

The Video Device Settings window is available from the Settings menu. It allows you configure the video input devices attached to your computer, connected either directly (locally) or over a network. Local devices include those connected by USB, FireWire, and PCI.

Local devices

Click on any item to jump to the description below

This menu contains a list of all local video input devices attached to the computer. Choose a device from this menu to adjust its settings.

Allows you to choose the video format (NTSC, PAL, or SECAM) if the device uses analog video (otherwise this control will not be visible). When you first load SecuritySpy it will attempt to set the format automatically based on you location, although you may need to set this manually. Some devices automatically detect the format of the analog video themselves.

Frame rate
This is the frame rate that is requested from the device. Use it if you want a lower rate than the device's maximum rate - doing so may cause the device itself to switch to the lower rate, resulting in less of the computer's processor time required to process the video and therefore better performance.

If the device has multiple inputs, this menu allows you to choose which input to use.

This feature allows you to use a quad video processor device to enable the input of up to four analog cameras using a single video input device. The image from the device is split into four and each quadrant is treated as a separate camera. When this option is turned on, each camera will use a quarter of the video size supplied by the device. For more information please see the Quad processors section of our Installation Manual.

Video size
Allows you to choose a video size for the video input device. If you leave these fields blank, the maximum video size supported by the device will be used, and therefore this is generally the best setting.

Network devices

This menu contains a list of all the network devices that have been set up. Choose one to configure its settings. For network video servers with multiple inputs, each input is treated as a separate network device, therefore you should create one network device for each input of the video server that you want to use.

Device type
Select the make and model of your network device in this menu. Select the Manual configuration option at the bottom of this menu if you wish to enter the HTTP request yourself (see below).

Enter the IP address, hostname, or Bonjour name of the device.

Bonjour menu
This menu (to the right of the address text box) lists all Bonjour-enabled devices on your local network. If a device supports Bonjour, it can be found automatically by SecuritySpy and its name, along with its Bonjour address, will be displayed in this menu. Selecting a device in this menu automatically fills out the address and port number text boxes in the above window. For example, the menu will look something like this:

In this example, three network devices have been found: two Axis cameras and a SecuritySpy server running on a different computer on the network. For Axis devices, the Bonjour address includes the device's hardware (MAC) address, which is printed on the label on the device itself, making it easier to match up devices with their entries in the Bonjour menu. A MAC address is unique to each network device and consists of 12 hexadecimal digits.

These are the network ports that SecuritySpy uses to communicate with the device. The standard ports are 80 for HTTP and 554 for RTSP (or 8000 in both cases if the network device is another copy of SecuritySpy), but if your device uses non-standard ports you should enter them here.

Use Secure Sockets Layer (SSL)
SSL is a cryptography 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. Note that this may significantly slow down video transmission due to the extra processing required by the device. In order to use SSL you will have to set up the device with a certificate (either self-signed or from a certificate authority, although the latter is not really necessary since you are setting up the server yourself and there is therefore no question about its authenticity).

Username / Password
If the network device requires authentication, enter your username and password here. If the device doesn't require authentication, leave these fields blank.

This menu lists the available formats supported by the network device, which will be one or more of the following: JPEG, MPEG-4 or H.264. JPEG is the simplest and most high-bandwidth format; MPEG-4 and H.264 respectively are more sophisticated and will use less network bandwidth, however they are more difficult to process so using these formats will result in increased computer CPU usage unless you enable the no recompression option.

Input number
For devices that support multiple inputs, specify the input number here. This setting will only be available if this feature is supported by the device.

Video size
Enter a video size to request from the device. If you leave these fields blank, the default video size of the network device will be used. This setting will only be available if this feature is supported by the device.

This setting allows you to adjust the compression quality used by the device to encode the video that it sends. The choices are: Default (in which case the device will compress at its default quality), Low, Medium, High and Maximum. Generally, if you are using the no recompression option, the Medium setting is a good compromise between quality and data rate; however if you are not using this option, you should use the High setting to ensure minimal image degradation due to this recompression. This setting will only be available if this feature is supported by the device.

Frame rate
Enter the frame rate at which you want the device to send the video. This setting will only be available if this feature is supported by the device.

No recompression of data from this device
Network devices supply data in a variety compressed formats (including JPEG/MPEG-4/H.264 for video, and G.711/G.726/AMR/AAC for audio). If this option is enabled, the video and audio data will be captured directly from the network device to the movie files that SecuritySpy creates. If this option is not enabled, the video and audio data will be recompressed using the settings specified in the Compression Settings window. Enabling this option will significantly reduce the load on the computer's processor when recording, resulting in increased performance, and also maintains the source video and audio quality. Note that if you have enabled a text overlay or a transformation (rotation/flip) for the camera in the Camera Settings window, this setting will be ignored for video, as in this case the video must be recompressed (therefore it is often better to enable such features in the network device itself rather in SecuritySpy).

Disable Pan/Tilt/Zoom support for this device
Many profiles in the above "Device type" list have PTZ support enabled for them, in order to control cameras with mechanical PTZ. If your device does not have PTZ features, or if you otherwise want to disable PTZ support for a particular device, enable this option. This simply removes the PTZ controls associated with the camera from SecuritySpy's user interface.

This setting is available when you select "Manual configuration" as the device type. This is the request text that is sent to the device to instruct it to send video data. This setting is useful if you want to use a network device that isn't yet explicitly supported. Consult the documentation or manufacturer of your device for information about the format for HTTP or RTSP requests it understands. The following methods of sending video data are supported:

Choosing and setting up your network devices
Please see the Network cameras section of our Installation Manual for comprehensive information on this topic.


Camera Settings

The Camera Settings windows allows you to define settings for each camera. To open this window choose Camera Settings... from the Settings menu, or hold the Apple (command) key and double click on a camera's video image. The Camera Settings window is divided into four sections:


Click on any item to jump to the description below

Settings for...

This menu contains a list of all cameras; select a camera from this menu to change its settings.

Camera enabled
This checkbox allows you to turn a particular camera on or off. If you turn a camera off it will no longer be used and will not be viewed or captured from.

Camera name
This will be used for identifying the camera and for naming files when capturing video and still images, so you should choose a meaningful name for the camera that describes its location or view, for example "Front door".

This menu has several options for transformations that can be applied to the video image to compensate for the mounting position of the camera (for example if it mounted upside-down or rotated to one side). The available transformations are: 180° rotation, 90° rotation clockwise, 90° rotation counter-clockwise, horizontal flip, and vertical flip.

Text overlay
Use this option to draw a text overlay on all captured video frames and still images. This overlay can include the current date and time, camera name, and any other custom text - see Overlay Settings below for more information.

Use this option to set a schedule for activating the camera automatically, for when you want it active at certain set times of the day or week. See Schedule Settings for information about creating a schedule.

Motion detection
The motion detection feature analyses the video stream to detect changes over time. Directly under the video display on the right side of the settings window, you will see the motion indicator bar that displays the amount of motion currently being detected in the video stream. When the camera is in Active mode and the motion level exceeds the threshold (shown as the red line in the motion indicator bar), motion capture and actions (alarms, emails, push notifications and scripts) are triggered.

Adjusts the sensitivity of the motion detection to allow for variations in camera installation conditions and characteristics of different cameras. High values make sure that motion detection will be triggered by even small amounts of motion in the video stream, however this may also result in some false-positive triggers.

Trigger time
This specifies the minimum duration of continuous motion that will cause the triggering of the motion-detection features (recording, actions etc.) The most sensitive setting is "1 frame", which will trigger if there is motion detected in a single video frame. However, this will produce some false-positive triggers due to rain, lighting changes, insects and other transient motion, so it is normally not the best setting to use.

A trigger time of 1-2 seconds is normally ideal: this will provide a very low rate of false-positive triggers while still being highly sensitive to real motion. Note that this feature works best when the frame rate of the incoming video stream is at least 5fps.

Audio detection
This feature triggers motion capture and actions when the audio level exceeds a certain threshold (1-99). To use this feature, an audio source must be enabled for this camera (under the Audio tab - see below).

Camera input ports
This feature triggers motion capture and actions when one of the camera's input ports is triggered. Network cameras typically have one or more input port (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 currently supports the input ports of Axis, D-Link and Canon cameras.

There are two masks available: motion detection and video blanking. The motion detection mask allows you to define areas of the image in which to ignore motion; the video blanking mask allows you to define areas of the image to blank out the video completely. Select a mask to edit from the menu, and click and drag in the video preview image to draw the mask, which will appear in green (the green area being the area that is ignored/blanked).

Capture destination
Each camera requires its own unique capture destination folder to which to capture movie and image files. By default, the capture destinations are automatically created within a Captured Files folder on the main system volume (~/Documents/SecuritySpy/Captured Files/). To choose an alternative volume (for example an external USB/FireWire/Thunderbolt drive), click the Set... button and select the volume of your choosing - the capture destination will then be created automatically in a folder called SecuritySpy Captured Files at the root level of your chosen volume. You can alternatively select a particular folder to use as the capture destination, but unless you want to do this, make sure to select the volume itself (root level), and not a particular folder within the volume.


Audio Source
Choose an audio input device to associate with this camera. This menu lists all available devices attached to your computer. Supported devices include built-in audio inputs as well as any USB, FireWire and PCI audio input devices. Additionally, if the camera is a supported network camera, or from a supported network video server, there will be a "Network audio" option in this menu to get audio input from the network device.

Device settings
Click this button for the device settings window that allows you to adjust settings for the audio capture such as sample rate, sample size, and volume. These settings are set on a per-camera basis, so two different cameras can use the same audio device with different settings (this is useful if you are using an audio device with multiple inputs and want to assign each input to a different camera for example).

If the audio device has more than one data source, these are listed in the top menu. For example, most built-in audio inputs in Mac computers have two data sources: Line In and Digital In; if you were using an analog audio source you would select Line In, if you were using a digital source you would select Digital In.

The Sample rate and Sample size menus allow you to adjust the quality of the audio - the higher these settings the better the quality, but the larger the captured files. The following should give you some idea of how the sample rate and sample size affect the recording quality:

Sample rates and and sample sizes that are supported in the hardware of the device are listed in these menus in bold; settings that are not listed in bold are achieved using software conversion (the disadvantage of software conversion being that it reduces audio quality and uses CPU time).

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. Normally the object is to record people speaking, and this requires only mono (one channel) audio, 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 stereo only if you need to.

The range of the volume control depends on the device. To obtain the best recording quality, adjust the volume so that loud sounds register high without going into the top two red bars of the volume indicator.

Record audio with continuous/timelapse movies
Enable this option to record audio with continuous/timelapse movies. Note that if you enable this option, continuous/timelapse movies will play back in real time.

Record audio with motion movies
Enable this option to record audio with movies triggered by motion detection.

Continuous capture

Capture continuous/timelapse movie
This feature captures timelapse movies at the frame rate you specify, irrespective of whether motion is detected or not. Timelapse movies are named with a "TL" label in the file name (as well as the current date) so that you can tell them apart from the movies triggered by motion detection. Timelapse capture will take place whenever the camera is in active mode.

The Capture frequency specifies how often to capture new frames (leave this setting blank to capture as fast as possible - video will be captured at full frame rate if your computer is fast enough).

The Playback frame rate specifies the frame rate that will be used for playback of the movie (it doesn't affect the capture at all). Use this setting if you want the movie to be played back faster than real time (if you leave this setting blank the movie will be played back in real time).

You can specify when to create a new timelapse movie - there are four options:

Daily (at midnight): a new movie will be created at midnight each day. All video captured during each day will be added to the same movie file even if the camera is switched between active and passive mode. The file name of the movie will contain just the day, month and year.

Hourly (on the hour): a new movie will be created at the beginning of each hour. All video captured during each hour will be added to the same movie file even if the camera is switched between active and passive mode. The file name of the movie will contain just the day, month, year and hour. This is a useful alternative to the Daily option above, producing smaller and therefore more manageable files that can be downloaded more easily over an Internet connection, for example.

Each time the camera is switched to active mode: a new movie will be created whenever the camera is switched to active mode and will continue to be created until the camera is next switched to passive mode.

Every x Minutes/Hours/Days: a new movie will be created at the frequency you specify. Whenever the camera is switched to passive mode and then back to active mode a new movie will also be created.

Upload to...
Turn this option on to upload all captured continuous/timelapse movie files to an FTP server. If the create setting is set to Daily at midnight, movies will be uploaded at the end of the day; otherwise movies will be uploaded as soon as they have been captured. Click the Server settings button to set up the upload destinations (see below for more information on this).

Capture image file every x seconds
This feature captures an image file to disk in JPEG format at the rate you specify.

Update image file on FTP server every x seconds
Turn this option on to upload an image with a fixed name to an FTP server periodically, replacing the previous file on the server each time. This can be used, for example, to continuously update an image on a web site. Click the "Server settings" button to set up the upload destinations. See below for more information.

File name on server
The name of the file on the server. Each time an image is uploaded this name is used and the new file replaces any existing file of the same name.


Motion capture

Capture movie when motion is detected
Turn on this option to capture a movie when motion is detected. Video is captured at the frame rate specified and saved to disk as a QuickTime movie using the current compression settings (JPEG, MPEG-4 etc.). A name for the movie file is generated automatically based on the camera name and time of capture.

Capture type (movie capture)
There are two options for the type of movie triggered by motion detection:

Separate movie per event: a separate movie will be created for each motion detection event. This may result in a large number of individual movie files but it is then easy to see the time of each motion detection event and find the movie you are looking for.

One movie per day: one movie will be created each day containing all the motion detection events of that day. One large file is easier to manage than lots of smaller files. If you use this option it is useful to enable the Text Overlay feature with a timestamp so that you will be able to see the capture time of each frame in the movie.

Frame rate (movie capture)
Specifies the frame rate for the movie capture. The lower the frame rate the less hard disk space used by the captured footage and the less CPU time used to compress the video, although low frame rates result in jerky video.

Pre-capture (movie capture)
It is often useful to have video from both before and after a motion event - in the time before and after, even though the motion is not high enough to trigger recording, there is often something interesting happening that is worth capturing. This is the purpose of the Pre-capture and Post-capture features. The pre-capture feature uses a buffer of video in memory so that when motion is detected the video before the time of motion is also captured.

Post-capture (movie capture)
Specify the number of seconds to continue capturing the movie after motion has dropped below the threshold level. This should be set to at least a few seconds to avoid many small movie files being captured for one longer period of motion.

Upload to... (movie capture)
Turn this option on to upload all captured motion-detected movie files to an FTP server. If the capture type is set to One movie per day, movies will be uploaded at the end of the day; if the capture type is Separate movie per event, movies will be uploaded as soon as they have been captured. Click the Server settings button to set up the upload destinations (see below for more information on this).

Capture image files when motion is detected
Turn this option on to periodically capture image files when motion is detected. Image files are saved in JPEG format and named based on the camera name and time of capture.

Frequency (image file capture)
Specify the capture frequency in terms of the number of seconds between image file captures.

Post-capture (image file capture)
Specify the number of seconds to continue to capture image files after motion has stopped.

Upload to... (image file capture)
Turn this option on to upload all captured motion-detected image files to an FTP server. Click the Server settings button to set up the upload destinations (see below for more information on this).



Play sound...
Turn this option on to play a sound when motion is detected. There are several sounds designed to scare off intruders, and you can add your own by placing sound files in the Sounds folder (~/Documents/SecuritySpy/Sounds/). To open the Sounds folder, select Sounds from the File menu. Most sound formats are supported (including AIFF, WAV, MP3, and AAC).

Specifies the duration in seconds to play the sound after motion has stopped.

Run script...
Turn this option on to run an AppleScript when motion is detected. You can create your own scripts using the AppleScript Editor application that comes with Mac OS X: place them 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 Open folder in Finder / Scripts). A few scripts are included with SecuritySpy, including ones that control switch/relay devices that are used to trigger external devices such as lights and alarms. The built-in scripts work with WebRelay and Web-i IO devices.

Send email to...
This feature sends an email, optionally with attached images, to an address you specify (to send the email to multiple addresses enter them separated by commas). Click the Email settings button to specify settings for sending emails. Images sent with emails are always compressed in JPEG format.

Come to the front and open camera video window
If this option is enabled, whenever motion is detected in this camera, SecuritySpy will come to the front, above all other applications, and will display the camera's video window.

After motion, delay x seconds before triggering action
This option allows you to specify a delay in seconds before performing any of the actions after motion is detected.

After action, delay x seconds before it can be triggered again
Once an action is triggered, this delay specifies the minimum time before the same action can be triggered again. Without this delay, an action could be triggered 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.


Email Settings

This window allows you to specify settings for sending emails. It is available by clicking the Email settings button in the Camera Settings window. The Email Settings window looks like this:

SMTP server
The address of the server used to send mail. This is normally provided by your ISP (Internet Service Provider).

If your ISP uses a non-standard port, you can specify this here using a colon and then the port number. For example, if your ISP uses port 28, you would enter "". Most SMTP servers operate on standard ports (25 for non-encrypted communication; 465 for encrypted SSL communication), so if you have not been told by your ISP to use a particular port, don't specify a port number and the standard one will be used automatically.

The small menu to the right of this field contains a few presets for common email accounts; select one and the server address any any other settings will be set to the appropriate values

'From' address
This is the return address sent with emails to identify the sender. You should always use a valid email address here as some spam filters block messages without a valid return address. Note that many SMTP servers will not accept just any return address: often the return email address must be from the same provider as the SMTP server.

'From' name
This is the name associated with the return address. It is optional, however if you don't specify a name here, there is a higher chance of the email being blocked by anti-spam software at the receiving email server, therefore it is recommended that you provide one.

Username and password
Some SMTP servers require authentication - if yours does, enter your username and password here.

You can choose from no encryption, SSL, or TLS. SSL and TLS are protocols that provides secure encrypted communication over the Internet. An increasing number of email servers support encryption (some even require it), however many servers do not support it, and enabling this feature when using such servers will prevent emails from being sent. Therefore, please check the instructions supplied by the provider of your email account, and only enable this feature if you are sure that your email server supports it.

Maximum image count, Maximum image capture rate
These settings define how many JPEG images to attach to each email triggered by motion detection, and at what rate to capture the images. SecuritySpy will intelligently choose which images to place in emails, based on the amount of motion in each frame, and it will omit frames that do not contain any motion. Therefore, the actual number of images used and the rate at which they are captured may be lower than specified here.

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. If you want to add the date or camera name to your custom subject text, enter "+d" or "+n" respectively (without the quotes) and the appropriate text will be inserted in place of these markers.

Test button
Once you have set up the email settings, you can test them by clicking the Test button. This is a feature that attempts to send a test email and reports back any problems with your email settings.


FTP Server Settings

This feature allows you to upload captured files to FTP servers. To set up the upload destinations click the Server settings button in the Camera Settings window. The FTP Server Settings window looks like this:

You can use this window to define destinations that are used to upload files. 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.

For the protocol, you can choose between FTP or FTPS: the latter being a secure version of the protocol which makes use of encrypted data transfer (this is sometimes called FTP Secure or FTP-SSL). Most FTP servers will also support FTPS, however note that this is different from a protocol called SSH File Transfer Protocol, which is confusingly referred to as SFTP. If in doubt, check with the provider of your server to confirm which protocols it supports.

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 FTP 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:

If you were to log in as user1, the FTP server will most likely set the initial directory as /pub/user1/. To have images uploaded to the user1 directory, you would not specify anything for the server path in the FTP Server Settings window, 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 FTP server decide the default directory and use a relative path, unless you have a specific reason to use an absolute path.

If the directory that you specify does not already exist on the FTP server, SecuritySpy will attempt to create it.

Technical information: SecuritySpy uses passive (PASV) FTP which works in most setups, even when there is a firewall at the client side. However, passive FTP may not work when there is a firewall at the server side. In this case, the firewall and FTP server need to be configured to use a set range of high ports for the FTP data connection. This effectively introduces a small "tunnel" through the firewall that can be used for FTP transfers (see the documentation of your FTP server and firewall for more information).

To see the status of current uploads at any time select Upload Status window from the Window menu.


Overlay Settings

To set up the text overlay settings click the Overlay settings button in the Camera Settings window. The Overlay Settings window looks like this:

In this window you can specify the text to overlay onto video frames. If you want to add the date (timestamp) or camera name to the overlay, enter "+d" or "+n" respectively (without the quotes) and the appropriate text will be inserted in place of these markers. If you want to add a time difference to the date (perhaps the camera is in a different time zone, connected over the Internet), you can add the time zone difference after the date marker, for example "+d+5" for 5 hours ahead the current local time; "+d-5" for 5 hours behind.

When enabled, the overlay is added to all recorded images and video. There are two options that control where else the overlay is shown: in video windows and/or in images sent through SecuritySpy's built-in web server.

You can also adjust the overlay's font size and position in the video image. The space at the bottom of the window displays the overlay as it will look in the video image.



The preferences are available from the Settings menu. The Preferences window looks like this:

Auto-remove old files based on age
If this option is on, captured files older than the number of days you specify will be deleted automatically. There is a separate setting for the startup (system) volume vs other volumes.

Auto-remove old files based on disk space remaining
If this option is on, old captured files will be deleted when disk space drops below the level you specify. This should not be set too low, as the disk may slow down significantly as it runs out of space; a value of 20 GB is typically a good setting. If the computer is being used for other applications besides SecuritySpy, more free space should be left on the startup (system) volume, hence there is a separate setting for the startup volume vs other volumes.

Dismiss alert messages after 1 minute
If this option is on, all alert messages (such as error messages) will be dismissed after 1 minute. This option should be enabled if the computer is left unattended.

Restart automatically after a crash
Every effort is taken to ensure that SecuritySpy is as stable as possible, however since SecuritySpy 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 since the computer may be left unattended for long periods of time this is a potential problem.

If this option is enabled, an auxiliary application is launched that monitors SecuritySpy and will restart it if it crashes. The auxiliary application runs invisibly in the background and uses practically no CPU time. If SecuritySpy crashes while video is being captured, at most only a few minutes of video will be lost.

Display camera information in video windows
If this option is turn on, camera information such as the camera name, mode, and recording status is displayed at the top of each camera image in video windows (but not in captured footage).

Display cameras at half frame rate in video windows
If this option is enabled, all cameras will display at half frame rate in all video windows. If you have many cameras and/or many video windows open at once, enabling this option may result in lower CPU usage (how much lower will depend on the resolution of your cameras and the speed of your computer's graphics card). This option affects display only; it doesn't affect video capture.

Set computer to full volume before playing sounds
If this option is enabled, the computer's main speaker volume will be automatically to maximum before playing sounds.

Get audio for cameras in active mode only
If you do not need to listen to the audio from cameras that are in passive mode, enable this option as it will reduce CPU usage.

Enable 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.

Perform motion detection for cameras in active mode only
If this option is enabled, motion detection will not be performed for any camera in passive mode. This will reduce CPU usage while any cameras are in passive mode.

Allow automatic computer sleep
If you want SecuritySpy to operate continuously, the computer must be awake, therefore you should disable this option. If however you would like the computer to sleep automatically when it is not being used (as per the settings in the Energy Saver system preference), enable this option.

Email error reports to...
Use this option to have error reports sent to an email address. Whenever an error occurs, an email that describes the error will be sent to the specified address. Click the Email settings button to specify settings for sending emails.

Password protected
You can set a password here that will be required by anyone attempting to change the mode of any camera (passive/active) as well as access settings or quit. Unfortunately it is not possible to prevent someone from manually switching off the computer but requiring a password provides a basic level of security.

Date ordering
Choose your desired ordering of the date. This is used whenever a date is displayed (for example in the timestamps in video frames and file names).

Maximum simultaneous FTP uploads
This setting defines how many uploads will be performed simultaneously to different FTP servers (multiple uploads to the same server will not be performed simultaneously, as there is no advantage in doing so).


Compression Settings

To set up the compression settings select Compression settings from the Settings menu. The Compression Settings window looks like this:

Video compression for local capture
There are several video compression codecs available for you to choose from:

None: No compression - produces the highest quality video possible but with the largest file size. In most cases, high-quality JPEG is preferable because of the huge data sizes of uncompressed video files. Using no compression is not suitable for typical video surveillance applications.

JPEG: Produces high quality video and is fast to compress so performance with this codec is very good. JPEG is reasonably efficient in terms of file size, but not as efficient as MPEG-4 or H.264. JPEG is significantly quicker to compress than MPEG-4 or H.264.

MPEG-4: Produces high quality video at low data rates. It is reasonably quick to compress and will give good performance on a reasonably fast computer. This is the codec that is the best choice for the majority of video surveillance applications.

H.264: This codec produces the lowest file sizes out of all the standard QuickTime codecs, however it uses a lot of processing power (many times more than MPEG-4) due to its very complex compression algorithm. It also uses vast amounts of memory: for a single camera at a video size of 640x480 for example, around 120MB of real memory is required. With multiple cameras or large video sizes, memory requirements can easily increase to many GB. If you use H.264 compression on a computer with too little memory, you will experience program or computer crashes. If this happens, switch to MPEG-4 instead.

MPEG-4 and H.264 support temporal compression. Depending on the content, video can have a high level of temporal redundancy, that is, very often one frame is similar to the last frame. Temporal compression exploits this redundancy to reduce the file size of the resulting video. Temporal compression works by using "key frames" at regular intervals, followed by several "delta frames". The key frames contain the complete video image; the delta frames contain only the portions of the image that have changed since the last key frame.

Images from surveillance cameras often have a high level of temporal redundancy because usually most of the image is constant and only a small portion is changing. Therefore the use of temporal compression will usually significantly decrease file sizes of captured video without significantly degrading quality. For MPEG-4 and H.264 you can enter a key frame rate in the Compression Settings window (key frame rates of 10 to 15 are typical).

Still image JPEG compression for local capture
Here you can set the compression quality for saving still JPEG images to the hard drive.

Still image JPEG compression for email/FTP upload
Here you can set the compression quality for sending JPEG image by email or uploading them to an FTP server.

JPEG/MPEG-4 compression for video streaming
Here you can set the compression quality for video streaming through the web server.

Audio compression
There are several audio compression codecs available for you to choose from, including:

No compression - this setting gives optimum quality and lowest processor usage. Since the data rate of audio is generally much lower than that of video, unless you need very small file sizes, no audio compression can be a good option. If you are not using audio compression, you should use a low sample rate and mono audio to minimise the data rate (these options are set independently for each device in the Audio Device Settings window available from the Camera Settings window).

Apple Lossless
This gives quality equal to no compression (since it is a lossless codec), at roughly half the data rate, and is reasonably quick to compress.

This is the codec we recommend as the best in most circumstances. It is a very efficient codec designed specifically for compressing speech quickly at a very low data rate (the data rate is fixed at 64kbps).

This produces high quality audio at low data rates, but is the most processor-intensive of the available codecs. For this codec, the Quality control will be available, which allows you to choose a quality value, which will determine the bitrate of the encoded AAC audio (the exact bitrate used will depend on the sample rate of the source audio, which can vary from camera to camera). A value of around 50 will give reasonably good quality audio at an efficient bitrate.

Schedule Settings

This feature allows you to set up weekly schedules for activating cameras automatically. Any schedules created here are available to all cameras in the Camera Settings window. Select Schedule Settings... from the Settings menu:

Times when cameras will be activated are represented as red "time objects". Each time object has a start time and end time, and defines a range of time when the camera will be automatically activated. Click and drag using the mouse to draw new time objects, or to move or edit existing time objects. To remove a time object, click on it and press the delete key on the keyboard. In the above example, the camera will be set to active mode from 18:00 to 08:00 on weekdays, and all weekend. SecuritySpy doesn't need to be running before the start time of a time object - if you launch it at any time marked in red on the schedule, all cameras using the schedule will be activated.

You can set up multiple schedules from the popup menu at the bottom of the window - in this menu there are options to add a new schedule, or rename or delete an existing schedule.


Web Server Settings

SecuritySpy features a built-in web server that allows you to view live video and audio, download captured footage, change settings and control the software, all from a remote location over a local network or the Internet.

There are several options available to receive and play the live streams at the remote location (client side). The main methods are as follows (the first three use a web browser, the last three use other client software):

• QuickTime MPEG-4 stream in a web browser: this is a very efficient format that will give good performance when viewing over either a local network or the Internet. This method works on both Mac and Windows computers, and supports both video and audio. On Windows, this requires the installation of QuickTime.

• Server push JPEG (MJPEG) stream in a web browser: this is a widely-compatible format that works well on local networks and requires very little server resources. For streaming over the internet however, the MPEG-4 format will give better performance. This method is supported by all major web browsers on both Mac and Windows computers (except Internet Explorer), as well as iOS devices. This method does not support audio.

• JavaScript JPEG in a web browser: This works by using a scripting language called JavaScript to cause the browser to continuously download and display images. This is useful for certain mobile devices which do not support the methods above.

Using SecuritySpy as the client software: this offers the best streaming performance and viewing environment for live video and audio. SecuritySpy is free for the purposes of viewing-only.

Dashboard widget: this is simple and convenient, although offers a small viewing size and low frame rate. This method supports video only (no audio). Can also be used on Windows and Linux computers with the Kludget Engine software.

• PC software such as Webcam Watcher. You will have to set up Webcam Watcher with an appropriate HTTP request to receive video from SecuritySpy. See the Appendix 2 for the format of HTTP requests. Some PC software may also be able to receive the audio stream, but this depends on the capabilities of the particular PC software used.

When using a web browser, you will have a choice of which streaming format to use, and an explanation of the pros and cons of each method. To view captured footage, change settings and control SecuritySpy, you will need to use a web browser.

You can make any file available through SecuritySpy's web server by adding it to the Web folder (~/Documents/SecuritySpy/Web/) - to open this folder, select Web from the File menu. To customise the web interface, you can add your own "index.html" file in this Web folder and it will override the default index.html file.

To set up the Web Server feature, go to Web Server Settings... from the Settings menu:

HTTP / HTTPS server
SecuritySpy includes both a standard HTTP web interface and an encrypted secure HTTPS web interface. Standard HTTP sends and receives data in its raw form, which is suitable for local networks but not safe for communicating over the internet where the data could be intercepted and decoded by a third party. By contrast, HTTPS is a secure protocol that employs encryption, making it extremely difficult for a third party to decode any intercepted data. HTTPS is therefore strongly preferred for sending sensitive information over the internet, such as passwords and video security footage.

The HTTP and HTTPS servers each operate on their own network port. A port number represents an endpoint or "channel" for network communication and allows different applications on the same computer to use the network without interfering with each other. Note that on Mac OS X, it is not possible for an application such as SecuritySpy to use ports below 1024 unless you specifically run it as a root process. SecuritySpy's default ports are 8000 and 8001 for HTTP and HTTPS respectively.

You access the web server from another computer on the same local network by typing the server's IP address and port number into a web browser, for example:

You can check and configure your computer's IP address using the Network pane of the System Preferences.

An alternative to using the IP address to access web servers running on your computer from within your local network, you can use the computer name, as set up in the Sharing system preference (provided you have not enabled the Mac OS X firewall feature on the computer). So, if your computer name is set as "Mac Pro" for example, you could access SecuritySpy's web server from another computer using the address mac-pro.local.:8000

The advantage of using the computer name in this way is that you don't have to set up your computer with a fixed IP address on the local network: no matter what IP address it has, you can access it using the computer name. Note however that if you want to access your SecuritySpy web server from the Internet, you will need to set up your computer with a fixed IP address on your local network in order to use port forwarding - please see the Remote monitoring section of our Installation Manual for more information.

HTTPS Keys and Certificates
Secure servers require a private key and a certificate in order to perform the encryption and identify the server. There are two kinds of certificate you can use: a self-signed certificate, or a certificate signed by a certificate authority. Both provide the same level of encryption, however self-signed certificates 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; simply ignore the warning displayed by the web browser.

Ideally, the address you use to access SecuritySpy should match the certificate's hostname, otherwise you will get an additional warning from the web browser about a hostname mismatch. Therefore, for connecting to SecuritySpy over the internet, we recommend that you use SecuritySpy's built-in Dynamic DNS feature, set this as the hostname in the certificate, and use it to access SecuritySpy over the internet.

In order to use a self-signed certificate with SecuritySpy, simply enable the "HTTPS server enabled" option in the above window - SecuritySpy will generate a key and certificate automatically. The Dynamic DNS address that you have set up will be used as the certificate's hostname, so make sure to create this and use it to access SecuritySpy.

In order to use a certificate obtained from a certificate authority, firstly 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 both the private key and signed certificate into the SecuritySpy folder within your Documents folder, and then quit and relaunch 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.
  • Password protected
    If this option is on, anyone accessing the web server will be required to enter a username and password.

    Click the Account settings... button to get this window:

    For each user you can choose which features of the web server they are allowed to access. Such permissions can be selected on a per-camera basis. So, for example, a particular user may be allowed to view live images for certain cameras, but not all cameras.

    To set permissions for a particular user, first select the user from upper list. Next, in the lower list, 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 further permissions for individual cameras.

    Enable the Allow access to general settings option to give a user access to general settings such as preferences and compression settings.

    Note: the username is not case sensitive, but the password is. Both the username and password can be up to 31 characters in length and can contain any character.

    Access control
    This feature allows you to limit the access to the web server to specific IP addresses, or to ban specific IP addresses from access. This adds another level of security on top of password protection, and is especially useful when you have just a small group of people with fixed IP addresses who are allowed access to the web server, or when you want to automatically ban people when they repeatedly try to gain access without authentication.

    Click the Access control settings... button to get this window:

    There are two modes for this access control feature. If you select Allow access from listed IP addresses only, then only the IP addresses you specify in the list will be allowed access; connection attempts from any other IP addresses will be blocked.

    If you select Block access from listed IP addresses (as in the above example), connection attempts from the listed IP addresses will be blocked, while connections from any other IP address will be allowed (but password protection still applies if you have enabled this feature).

    If you enable the Automatically block IP after 5 failed login attempts option at the bottom of the window, after five consecutive failed connection attempts within five minutes (attempts to access the web server with incorrect login details), the IP address where the connection originated will be automatically added to the list, and no further connection attempts will be accepted from that IP address. This will stop someone from trying to guess your password by repeatedly attempting to access the web server.

    You can use the wildcard character * in an address you specify to indicate a whole subnet. For example if you specify 192.168.1.*, this will allow or block access for the entire 192.168.1 subnet.

    Make movies Fast Start on-the-fly
    Normally, QuickTime movies 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
    If this option is enabled, a text file called "WebLog.txt" will be written to the Web folder (~/Documents/SecuritySpy/Web/) - this file contains information about every connection to the web server. For each connection this log file will list the time, the client's IP address, and the requested page of each connection. Since this file is created in the Web folder it can be accessed through the web server using a browser just like any other file in the Web folder.

    Advertise this web server via Bonjour
    Bonjour is a method of "zero configuration" network setup, which makes it easy to attach and find devices on a network. To discover Bonjour-advertised network devices in Safari, you need to go to Bookmarks and click on the Bonjour section - the following image shows the Safari Bookmarks window which has discovered several devices on the network, including the SecuritySpy web server which is entitled "My Web Server":

    SecuritySpy uses the server name text (see below) as its Bonjour name. Note that if you have enabled the Mac OS X 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 System Preferences.

    Bonjour/Server name
    You can enter any text here in order to customise the name of the web server. As well as being used as the Bonjour name (see above), this name gets displayed by a web browser when it requests authentication. For example, here is the message displayed by the Safari web browser when it connects to a password-protected server with the name "My Web Server" (other web browsers display similar messages):

    Dynamic DNS name (DDNS)
    Most Internet connections provide a dynamic public IP address, which can change from time to time. If you want to set up remote monitoring of your system over the Internet, you will need a static name to access your system, which is what SecuritySpy's DDNS system provides. Simply enter the DDNS name you want to use and click the "Test" button to check if it is available. Once set up, the Internet address will always point to your public IP address, even when your public IP address changes.

    Note that once you have set up a DDNS name, your system becomes easier to access from the Internet, so for security reasons you should also enable password protection for the SecuritySpy web server. Note also that SecuritySpy must be actually be running on your computer in order to update your DDNS name.

    Local IP address
    Your computer's IP address on your local network (LAN) will be displayed here. You can use this address to connect to SecuritySpy's web server from another computer on your local network by using this address and the port number. For example, with the settings used here, you would enter "" into a web browser on the other computer in order to connect. Note that this address is local to your network and will not work outside it (i.e. over the Internet).

    Accessing SecuritySpy from the Internet
    Setting up access to your system from the Internet requires configuration of your router. For instructions, please see the Remote monitoring section of our Installation Manual.

    Dashboard Widget

    SecuritySpy comes with its own Dashboard widget for easy remote viewing of video streams over a local network or the Internet. Click here to download the SecuritySpy widget - it will be installed automatically into your widgets folder and will be immediately available in Dashboard. The first time you load the widget you will need to specify some settings so that it knows where the SecuritySpy web server is. To open the settings window click the info button (the "i" symbol in the bottom right hand corner of the widget). The settings look like this:

    The widget has the following settings on the back:

    If, instead of the image, you get a question-mark icon, it means that the widget wasn't able to get the image. Check the address, camera number, username and password to make sure they are all correct.

    In order to view several different cameras at the same time, you can open one instance of the SecuritySpy widget for each camera you want to view. The widget can be used without restriction on as many computers as you like.

    This widget can also be used on Windows and Linux computers with the Kludget Engine software.


    Group settings

    When you have many cameras, the main video window can get cluttered and difficult to view, so it is useful to set up groups of cameras that can be displayed in separate windows. For example, if you have four cameras at the front of your building and four cameras at the back, you can set up two groups: "Front of building" and "Back of building". Each group contains the four appropriate cameras, and can be displayed independently in its own window. To set up groups, select Group settings... from the Settings menu:

    From the menu at the top of the window, you can add a new group or delete an existing one. By default, all cameras are displayed at the same time in the group window, but if you enable the Display cameras in sequence option, then each camera will be displayed in sequence with the delay you specify.

    Once you create a group, click the OK button in the above window and the new group window will be opened. To add a camera to a group window, drag it from another video window or from the Camera Status window to the group window. To remove a camera from a group window, drag it from the group window to the trash in the Dock.

    If a group window is closed, you can open it again from the Group video windows section of the Window menu.


    SecuritySpy has broadcasting features for streaming real-time video over a network, using the standard Real-Time Transport Protocol/Real-Time Streaming Protocol (RTP/RTSP). The video can be viewed using Apple's QuickTime Player application, or sent to Apple's QuickTime Streaming Server (QTSS) for large-scale delivery. The use of compression such as MPEG-4 makes SecuritySpy's broadcasting a powerful and efficient method of real-time content delivery. Multiple simultaneous streams from multiple cameras are supported, as well as both unicast and multicast streams. You can even create multiple simultaneous streams from the same camera, with different compression and bandwidth settings.

    Streams are created and managed from the Broadcasts window, available by selecting Broadcasts from the Window menu:

    This window lists all current broadcasts, showing the camera name and the destination IP address and port number. In the above example, all three broadcasts are active - to stop a broadcast, select it in the list and click the Stop broadcast button (this button is also used to start broadcasts that have been stopped). To delete a broadcast, select it in the list and click the Delete... button.

    To add a new broadcast, click the Add... button or to edit an existing broadcast, select it in the list and click the Edit... button - this window will appear, allowing you to add or edit a broadcast:

    The settings are as follows:

    Select the camera from which you want to broadcast live video.

    Compression codec
    This is the compression type used for the video stream. MPEG-4 is the most efficient and will give you the best quality at the lowest data rates of all the codecs currently available.

    Compression quality
    The higher the quality the higher the data rate of the stream. A quality of 50 typically represents a reasonable balance between image quality and data rate.

    Frame rate
    The frame rate of video sent on this broadcast.

    Key frame every...
    If the compression codec you select supports temporal compression, you should specify a key frame rate here. Using temporal compression will significantly reduce the data rate of the video stream. A key frame rate of between 10 and 20 is typical.

    Limit data rate to...
    Use this setting if you require a particular data rate for the video stream. This is useful if you are streaming over the Internet and have only a limited bandwidth available. If you use this setting, the compression quality is automatically adjusted in order to achieve the specified data rate.

    Broadcast method
    There are two broadcast methods available: unicast and multicast. See below for more information on this.

    This is the address the stream is sent to. In unicast mode, this defines the client computer's address. In multicast mode this defines the multicast address. This multicast address can be generated randomly by clicking the Generate button or, if you are streaming over the Internet, you may have to use a particular multicast address assigned to you by your service provider.

    The port number for the stream. Each broadcast must be on a unique port.

    Time to live (TTL)
    This setting specifies the number of times a stream can be passed from one router to another before the stream is no longer transmitted. The value can be any number between 1 and 255. A value of 1 reaches client computers on the local area network. The larger the number, the farther the multicast packets will travel.

    How to stream video

    There are two broadcast methods: unicast and multicast. In unicast mode, each client requests its own stream from the server. As more clients request the stream, more sessions will become active on the server. As the number of sessions grows, the load on the server and the bandwidth required to support these clients will increase accordingly.

    In multicast mode, one stream is sent that can be received by multiple clients. The advantage of multicast is that clients can "tune in" to this single stream with no extra load on the server or increase in required network bandwidth. This method allows for very efficient distribution of video to a large number of clients, however it requires networks that support multicasting.

    A client computer connects to a stream broadcast by SecuritySpy through the use of an "SDP" file, which contains information about a broadcast. Select a broadcast from the list, click the Create SDP file... button, and save the file somewhere (to your desktop for example). You need to transfer this file to the client computer to be used by the software that is to receive the stream (such as QuickTime Player, QuickTime Streaming Server (QTSS), or some other software that can receive RTP/RTSP streams). The software on the client computer will use the information contained in the SDP file to connect to the stream.

    Depending on your audience size and broadcast method, you may or may not need to use Apple's QuickTime Streaming Server (QTSS) software.

    If you are streaming unicast to a single client, you don't need QTSS: the client computer can connect directly to SecuritySpy to receive the stream by opening the SDP file in QuickTime Player.

    If however you are streaming unicast to multiple clients, you will need to use QTSS. Place the SDP file created by SecuritySpy into the /Library/Quicktimestreaming/Movies/ folder on the computer running QTSS. The stream will then be available to users by connecting to QTSS using QuickTime Player, by using the following URL:

    rtsp://<QTSS address>/<SDP file name>.sdp

    For example, if the address of the computer running QTSS is and the SDP file name is "mystream.sdp", the URL would be:


    If you are streaming multicast to users on a local network or the Internet, you don't need to use QTSS, however each client computer will need a copy of the SDP file in order to receive the stream. A more convenient setup is to use QTSS, in which case each client will simply connect to a URL (same as above in the unicast case).

    Broadcasting multicast streams over a local network requires that you have a network that supports multicasting - if you are unsure about your network equipment, contact your equipment manufacturer/supplier to find out if multicast is supported and how to enable it.

    Broadcasting multicast streams over the Internet requires a connection to the multicast backbone ("MBone"). Some Internet service providers offer this service, but not all - check with your service provider if you are unsure. Client computers doesn't need to have access to the MBone to receive your multicast stream: if they don't, they will receive a unicast stream from the closest edge router (i.e. the last router in the chain that supports multicast).

    It is possible to run both SecuritySpy and QTSS on the same computer - for a small audience size (100 or so) this normally yields acceptable performance. For best performance or for larger audiences, you should use two separate computers: one running SecuritySpy and the other running QTSS.


    SecuritySpy has a Browser feature that allows you to view and manage captured footage. Choose Browser from the Window menu to open the Browser:

    The Browser has two modes: single-file and multi-file. In single-file mode, the Browser displays a list of captured files for the camera(s) you select, as in the picture above. In multi-file mode, the Browser displays a single 24-hour long movie for each day that contains all footage captured by the camera(s) you select, allowing you to play back synchronised footage from multiple cameras. You switch between these two modes from the Browser Settings window, available from the Browser menu (see below).

    Controlling movie playback
    To play a movie, click the play button in the bottom left hand corner of the movie. To the right of this play button is the movie controller that allows you to move forwards and backwards in the movie. The arrows in the bottom right hand corner of the movie allow you to step forwards and backwards by one frame at a time (the right and left arrow keys on the keyboard do the same thing). The icon with the arrows in the bottom right corner of the Browser window is a mouse-operated scrub control: click in this control and drag the mouse left and right to scrub backwards and forwards in the movie (each pixel moved by the mouse advances the movie by one second). Hold the alt key on the keyboard to slow down the scrub speed for very fine control (holding down the alt key makes the scrub speed 30 times slower).

    The Browser also supports "JKL" keyboard shuttle controls: pressing "L" causes the movie to speed up in the forward direction by a factor of 2; "J" causes the movie to speed up in the reverse direction by a factor of 2; "K" pauses the movie playback. If you press L while holding K, the movie will step forwards one frame; if you press J while holding K, the movie will step backwards one frame.

    Single-file mode
    In this mode, there are two lists on the left of the window: one that shows all available cameras and another that shows a list of files. Select one or more cameras in the top list, and all captured files for the selected cameras will be shown in the lower list. Click on any file in the lower list to display it. You can use the movie controller to play a single movie, or click the play button above the file list to play through all files in sequence. Movies that are currently being captured appear in the list in italics, and every time you click on such a movie in the list, it will update to reflect the changes that may have occurred since the last update.

    Multi-file mode
    In this mode, there is only one list: the camera list in the top left of the window. There is also a date control that allows you to select a particular day. Select one or more cameras from this list (hold the shift key down to select multiple cameras) to display all footage captured by the cameras for the day you select. All captured movies files (both timelapse and motion-triggered) are collated into a single movie covering the whole day.

    The Browser menu
    The Browser menu at the top of the screen contains the following functions:

    Export frame...
    Exports an image file of the current movie frame. The image file can be saved in a variety of formats (including TIFF, JPEG and PNG) - for most purposes JPEG is a good choice as it offers good quality at low data sizes. The quality is adjustable, so choose high quality if this is important.

    Export movie...
    Exports the current movie as a new file, allowing you to change the compression format and other parameters (such as video size and frame rate).

    Save copy of movie as...
    Saves an exact copy of the current movie as a new file.

    Save selection of movie as... (single-file mode only)
    You can select a portion of the movie by holding the shift key on the keyboard and dragging the movie controller. Once you have set a selection, you can use this command to save the selection as a separate movie.

    Reveal selection in Finder (single-file mode only)
    Show the current file in the Finder.

    Delete selected files... (single-file mode only)
    Permanently deletes the files that are currently selected in the file list.

    Refresh movie
    Reloads the movie from disk. Useful when you are viewing a file that is currently being captured, to update the Browser display with the latest data.

    Browser settings...
    Shows the browser settings window:

    Viewing mode
    Allows you to choose between single-file and multi-file viewing modes.

    Movie Playback speed
    Use this option to play the movies back at a multiple of their normal speed. This is useful for saving time while viewing lots of movies.

    Start movies at x seconds from beginning
    If you use this option movies will be automatically started a number of seconds from the beginning. This is useful when you are using the pre-capture feature, since in this case the motion event that triggers recording occurs some time after the start of the movie.

    Deinterlace exported frames
    This is useful for exporting frames from full-size analog video to remove any interlacing artefacts, however this also reduces the amount of detail in the image.

    Network Devices

    These devices connect to the computer over a wired or wireless ethernet network. There are two kinds of network device: network cameras and network video servers. They are similar in the way that they send video over the network, but whereas a network camera is a self-contained (often all-digital) unit, a network video server has one or more analog inputs for connecting analog cameras.

    Network devices can connect over long distances, ethernet wiring is relatively cheap and easy to set up, and a large number of devices can be used simultaneously (the number of devices is only limited by network bandwidth, speed of computer, and performance required). Network devices generally provide high quality video and good performance.

    SecuritySpy supports the vast majority of network video streaming formats produced by network cameras (HTTP and RTSP protocols; JPEG, MPEG-4 and H.264 video formats; AAC, G.711, G.726, PCM and AMR audio formats). Please see our comprehensive searchable list of supported network cameras. Even if a particular camera is not on this list, it is highly likely that it will work with SecuritySpy with the correct HTTP or RTSP request string (this can usually be obtained from the camera's documentation or by requesting this information directly from the manufacturer).

    You set up network devices in the Video Device Settings window.

    Connecting to network devices

    When you open SecuritySpy it will attempt to connect to all network devices. While the connection is in progress you will see a flashing icon like this:

    If the connection fails for any reason, the icon will change to a red cross:

    Connections can fail for a number of reasons such as an incorrect username/password, incorrect IP address, or network problem. If a connection fails, check the log (select Open log from the File menu) as it should give you more information about what the problem is. SecuritySpy will repeatedly attempt to connect at 30 second intervals - this will ensure reliability if there is just a temporary problem with the network or device.

    Pan/Tilt/Zoom (PTZ)

    SecuritySpy supports PTZ control for network devices. To open the PTZ control window for a particular camera, select it from the Window menu or hold down the option (alt) key and double-click on the camera's video display. The PTZ window looks like this:

    The arrow buttons control pan and tilt, the + and - buttons control zoom and the circle button resets the device to the "home" position. If a particular function is not supported by the device the corresponding button will not be available in the above window (for example some devices support pan and tilt but not zoom).

    If your camera supports preset positions, the eight lower buttons will also be available. To save the current position as one of the presets, hold the <alt> key on the keyboard and click one of the preset buttons. To specify names for the preset positions, click the small disclosure triangle in the bottom left hand corner of the window to reveal these settings.

    When a PTZ window is at the front, it be controlled using the numeric keypad on the right of standard keyboards: 1 on the keypad corresponds to down-left; 2 corresponds to down etc. These keyboard controls also work in video windows - simply click once on the video image of the camera you want to control and you can use these keypad commands to control it.

    In addition, if you press the Caps Lock key on the keyboard, you can control the pan and tilt of the camera by clicking directly in the video image of a particular camera - a click in the right hand side of the video image will move the camera right etc.

    Note: devices often require username/password details for controlling PTZ so make sure these have been entered correctly in the Video Device Settings window. Authentication details required for simply viewing video may not be the same as those required for controlling PTZ.

    Using SecuritySpy as a video server

    It is possible to use one computer running SecuritySpy as a network video server, sending video to another computer running SecuritySpy. In this way you can set up a distributed video surveillance system with multiple computers over an ethernet network, each with their own local video input devices, all sending video back to a central computer that records and stores all the video.

    One advantage of this approach is its sheer flexibility when it comes to numbers and types of video input device you can use. For example, in a large organisation with several departments, each can have a video server with one or more local video input devices (a built-in iSight camera for example), sending video back to a central control room, possibly over long distances, using an ethernet network. Depending on the requirements for each department, low-spec computers may be used for the video servers, therefore enabling a low cost and very flexible solution compared to purpose-built hardware video servers. Another advantage of such a system is that all the motion detection processing is done on the remote computer, which sends back this information to the central computer, thus reducing the processor load on the central computer and resulting in better performance (note that with such a setup the "central computer" is not always well defined; since each computer is running SecuritySpy each has the same capabilities. For example, one computer could record some of its cameras locally while sending the video from other cameras to a different computer for display and capture somewhere else - this capability makes the setup very flexible).

    Another use for this feature is remote viewing of cameras over a local network or the Internet. Although this can be done using a web browser, you will find that using SecuritySpy gives you better performance and a nicer interface. Of course, you can only do this on a Mac whereas web browsers are available for other platforms (Windows and Linux).

    To set up one computer (the server) to transmit video to another computer (the client), do the following:

    On the server computer
    • Turn on SecuritySpy's web server feature in the Web Server Settings window. If you have set a static address for the server computer, note the server's IP address and port number as displayed in this window. If you haven't set up the server with a static IP address, make sure that the "Advertise this web server via Bonjour" setting in the Web Server Settings window is enabled so that the client computer can automatically find the server. Give the server a name in the Server name text box.

    On the client computer
    • Go to the Video Device Settings window (under the Settings menu) and add a new network device.

    • If the server has a static IP address, enter enter it in the Address field; otherwise click the Bonjour menu to the right of the Address field and select the server computer, which should have been found automatically. Select SecuritySpy from the Device type popup menu, and select an input number corresponding to a camera on the server computer (each camera connected to SecuritySpy has a unique number - this is the number you enter in the Video Device Settings window of the client computer as the Input number).

    • If you have enabled password protection for the web server you need to enter your username and password on the client computer.

    • You have two options for the video compression codec used for the video stream: JPEG and MPEG-4. JPEG is a good general-purpose codec due to its high quality at reasonable data rates, and relatively quick compression and decompression. MPEG-4 is ideal for transmission over a low-bandwidth connection such as the Internet, as it offers much lower data rates than JPEG, however it uses more CPU time to compress and decompress.

    To find out which input number corresponds to which camera on the server computer, click the Get input list button in the Video Device Settings window on the client computer. The client will ask the server for a list of available cameras and will display the list in a window, like this:

    This window lists all available cameras on the server computer. To choose a particular camera, select it in the list and click the OK button - the input number in the Video Device Settings window will then be set for you. If instead of this list you get an error message, make sure that you have correctly entered the IP address and port number of the server.

    In the above case, the camera "MovableCam" is actually a network camera attached to the server. If the client requests video from this input, it will get video from the network camera, retransmitted through the server computer. Having multiple users access the network camera through another computer running SecuritySpy instead of directly from the camera itself in this way reduces the load on the camera and therefore may increase performance, and also the number of users who can then access the camera is not restricted by the camera's limit. If you do this it is advisable to enable the Don't recompress images from this device option in the Video Device Settings window on the server computer, otherwise video will be recompressed as it is retransmitted through the server, which reduces quality and uses more of the server's processing power. If this option is enabled, the server computer retransmits the video in its raw form, preserving the original quality.

    Setting up SecuritySpy for autonomous operation

    Here are the steps required to set up your video surveillance system to operate autonomously:

    Set SecuritySpy to open whenever the computer starts up
    Open System Preferences and click on Accounts. Click on your account and click the Startup Items tab on the right hand side of the window. Drag the SecuritySpy application into the list of startup items. Alternatively, open SecuritySpy and click and hold the mouse button on the SecuritySpy icon in the Dock. From the menu that pops up, select Open at Login.

    Set the computer to never sleep
    Open System Preferences and click on Energy Saver. Click on the Sleep tab and where it says Put the computer to sleep when it is inactive for, drag the slider all the way to the right, where it says Never. It is also recommended for best performance to disable the setting Put the hard disk to sleep when possible. Display sleep should be enabled to save power and prevent monitor "burn-in".

    Set the computer to restart after a power failure
    Open System Preferences and click on Energy Saver. Click on the Options tab and enable the setting labeled Restart automatically after a power failure.

    Enable remote monitoring and administration
    See the Web Server Settings settings in this manual for details.

    Close all video windows
    Video windows are not required if there is no one operating the computer, and they will use CPU time resulting in lower performance.

    Optimising Performance

    Using multiple cameras simultaneously involves moving, calculating and storing large amounts of data. To get the most out of your computer you should:

    When using network devices, enable the No recompression option at the bottom of the Video Device Settings window, and make sure that the text overlay and transform features in SecuritySpy are disabled (most devices have these feature built-in, so you can enable them in the device itself if required). This causes the video and audio data to be captured directly from the device to the recorded files, which can save a huge amount of CPU time as well as maintaining the original quality of the incoming media. This works best when the incoming video from the network device is in MPEG-4 or H.264 format rather than JPEG format, because JPEG is much less space-efficient and will produce large captured files. The format setting in the Video Device Settings window allows you to choose which format should be used for the incoming video data from the network device.

    In the Options section of the Energy Saver System Preference, set the Processor Performance setting to Highest. This setting is not available on all computers, but where it is, it should speed up the computer significantly.

    Disable sleep mode in the Energy Saver System Preference. SecuritySpy cannot operate when the computer is in sleep mode.

    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. SecuritySpy automatically disables hard disk sleep when any camera that is set to capture on motion is active, but if there are periods when there are no cameras active the disk(s) may spin down.

    Enable the Display cameras at half frame rate in video windows option in the Preferences and/or close the video windows when you are not using them. Display of video to the screen uses some CPU time and can therefore result in lower capture performance.

    Enable the Perform motion detection for cameras in active mode only option in the Preferences.

    In the Video Device Settings window, specify the lowest frame rate you require for each device. If this option is not available here, you may be able to set it in the camera directly. If a device is sending frames faster than they need to be recorded, CPU time is wasted processing these extra frames.

    Quit all applications other than SecuritySpy.

    A fast hard drive is likely to improve performance, depending on the number of cameras capturing simultaneously and the video compression used. If an external hard drive is being used, then Thunderbolt is the best interface (although USB 2.0, USB 3.0 or FireWire work fine in most situations). This is especially applicable when capturing in JPEG format and/or when using a high number of cameras. If you are using a Mac Pro computer, you can install additional hard drives and distribute the cameras over the available drives.

    Support / Help

    For information about how to choose, install and set up the hardware of your video surveillance system, see our 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

    There is an online calculator available that gives a guide to the specification of computer required for a particular setup.

    Appendix 1: Error codes

    When SecuritySpy encounters an error it will display an error code, or write one to the log file. Click here for a list of Apple-defined error codes.

    There are also the following SecuritySpy error codes:

    800 - The operation timed out
    801 - Data from network device not as expected
    802 - Error initialising a network device
    803 - Invalid network device
    804 - The network device unexpectedly closed the connection
    805 - Response from FTP server not as expected
    806 - Network device has not yet initialised
    807 - Invalid camera number
    808 - Data size from local device not as expected
    809 - The network device sends chunked data, which is not supported
    810 - No address has been supplied for the network device
    814 - The format of the destination disk may be bad
    816 - The network bandwidth is too low
    841 - Buffer overflow, usually means that the computer is under-powered

    Appendix 2: Built-in web server HTTP interface

    This section describes the HTTP requests that SecuritySpy's built-in web server understands. You can use this information to include images and video in your own custom web pages, or to set up remote viewing software such as Webcam Watcher. To make your own custom web page available through SecuritySpy's built-in web server, place them in the ~/Documents/SecuritySpy/Web/ folder.

    Still JPEG image


    <camera> is the number of the camera, as displayed in the Device Map window (select Show device map from the Window menu)
    <width> is the width of the image in pixels (this parameter is optional)
    <height> is the height of the image in pixels (this parameter is optional)
    <quality> is the compression quality in the range 0 to 100 (this parameter is optional)

    For example:

    You can add the still JPEG image to your HTML page using an img tag. Alternatively, JavaScript can be used to continually refresh this JPEG image with a new version, simulating live video. Do do this, insert this JavaScript code within the head of your HTML page (change the address and camera number to match your system):

    var count=0;
    function UpdateImage() {document.image.src=""+count;count++;}
    function SetTimeout() {window.setTimeout("UpdateImage()",1000);}

    Add the image to your web page using the following line of HTML code (change the address and camera number to match your system):

    <img src="" name="image" onLoad="SetTimeout()">

    Multipart-JPEG "server push" video stream


    <camera> is the number of the camera, as displayed in the Device Map window (select Show device map from the Window menu)
    <width> is the width of the image in pixels (this parameter is optional)
    <height> is the height of the image in pixels (this parameter is optional)
    <quality> is the compression quality in the range 0 to 100 (this parameter is optional)
    <fps> is the FPS of video that SecuritySpy will attempt to send (this parameter is optional)

    For example:

    Audio (encoded as G.711 µ-law)


    <camera> is the number of the camera, as displayed in the Device Map window (select Show device map from the Window menu)

    For example:

    QuickTime MPEG-4 stream

    To use SecuritySpy's MPEG-4 stream in your own web page for display of live video, use this HTML code:

    <embed autoplay="true" controller="true" target="myself" type="video/quicktime" width="640" height="496"

    In this example, live video and audio from camera 1 will be displayed at a resolution of 640x480 (notice that the movie controller itself must be 16 pixels taller than the actual video, to allow space for it to display correctly). You will need to substitute your own values for width, height and cameraNum as appropriate to your setup (to find out which camera corresponds to which camera number, select Show device map from the Window menu).

    If you have enabled password protection for SecuritySpy's web server, you will additionally have to add an authentication parameter to the above code. In order to determine this, open SecuritySpy's main web interface in a web browser, select QuickTime MPEG-4 as the streaming format, and click the Go button. In the subsequent page which shows the live stream, use your browser to view the HTML source code, and you will see the auth parameter there within the <embed> line, for example:


    Setting a camera to Active or Passive mode


    <camera> is the number of the camera, as displayed in the Device Map window (select Show device map from the Window menu)

    For example:

    Additional features

    The request "++scripts" displays a page showing all the available scripts: clicking on one opens it on the server computer. Likewise the request "++sounds" displays a page showing all the available sounds: clicking on one plays it on the server computer. Scripts are stored in the ~/Documents/SecuritySpy/Scripts/ folder; sounds are stored in the ~/Documents/SecuritySpy/Sounds/ folder - you can add your own scripts and sounds to these folders to make them available in SecuritySpy. To open the Scripts or Sounds folder in the Finder, select it from the list of folders in the File menu).

    More information

    Full specifications of the HTTP interface to SecuritySpy's web server can be found here.