Click on the Server icon at the top left of the Agent UI and "Edit Devices" under Devices. Choose the device you want to edit and click the Edit icon . Alternatively, click the camera in the Live View to select it and click the edit icon on the bottom toolbar (or press the shortcut key "E"). On Desktop you can right click the Camera on the Live View (or anywhere in Agent where there is a live thumbnail like the time line).

This is the main interface for configuring your devices. The top displays your object ID (in this case, 7), device name (Back Yard) and then on the right the main device menu which gives you access to all the areas you can configure (which we call tabs). The * next to some of the settings means that changing this applies straight away (without clicking OK).
General
This tab gives you access to general and frequently used settings.
- Name: Give your camera a descriptive name like "Office" or "Back Yard"
- Enabled: Controls if the camera is switched on or off in Agent. Does not actually power down your device (unless it is a USB camera).
- Icon: Choose an Icon for your device (used on the floorplans).
- Location: Click the button to manage locations. You can add locations like "Main House" and assign a color and GPS location to them (for sunrise/ sunset calculations - used in the Scheduler). When devices are assigned to locations they will be color coded with a custom border color in the live view. When adding a location you can either click a button to detect the GPS location or enter it manually. The format for GPS is decimal, in latitude, longitude and should look like (for example): -32.9649524,117.003738
- Groups: This is used in Remote Permissions and Local Users
- Source Type: Choose how Agent connects to your devices. See Video Source Types
- Decoder: Choose from CPU, GPU, VLC (if available) or NONE (v3.9.8.0+). VLC can sometimes decode streams that FFMPEG (which Agent uses) can't. You'll need to disable/ enable the camera to apply changes. See Advanced video source settings for GPU decoder options. None is only available on IP Camera source types and skips video decoding so will force the recording mode to raw. If NONE is selected then motion detection and AI alert filtering won't work.
FFmpeg sometimes fails to decode to some RTSP streams from a few models of camera. If the stream fails to connect with an error message like "Invalid data found when processing input" then try switching the decoder to VLC (Install VLC and restart Agent to detect it)
- RTMP Server: Select the RTMP server from server settings to use when live streaming this device to third party servers. Default will use the first one available.
- Schedule: Controls if the scheduler is enabled or not. If the scheduler is disabled no scheduled events will be triggered.
- MQTT Events: This enables/ disables the automatic MQTT events packets that Agent can send to your MQTT server (so you don't need to configure it all manually) - requires an MQTT server to be configured.
- Max Framerate: Use this to make Agent ignore frames to reduce CPU usage.
- Resize: Check this to have Agent resize frames. You can set the resize size by clicking on the button next to "Source Type", selecting the "Advanced" tab and setting the Width and Height.
- Image Correction: Click the button to set the mode, focal length, limit and scale which are used to turn fisheye and 360 cameras into regular rectangular views.
- Flip: This provides a way to mirror the live video either horizontally, vertically or both (useful if your camera is mounted upside down)
- Rotate: Rotates the video through 90 or 270 degrees (useful if your camera is mounted sideways).
- Overlay Image: Provide a transparent .png file via - Upload feature and Agent will overlay it on your camera video stream.
- Fill Mode: Controls how the camera renders in the live view - Use Default: use the setting in Server Settings - Playback - Center Images. Center: maintain aspect ratio in the available space. Fill: fill the available space.
- Device Color: This color is used in the time machine view to link the timeline to the playback view.
Actions
Tell Agent what to do when various events occur like Alerts or devices turned off or recordings finished etc. See Actions
Alerts
Alerts are generated by motion detection and plugins. See Alerts
Alert Filter (deprecated from v4.4.8.0 - see AI Alert Filtering):
The Alert filter uses DeepStack to recognise objects when alerts are generated by a detector and filter them out if it doesn't find them. This can cut down substantially on false alerts. See DeepStack for more information
Audio
Configure and audio device to pair with your camera (this is automatically configured if your camera has an audio stream). You can configure an overlay audio display here as well.
Tip: Click to configure the microphone and you can change the colors of the audio display.
- Microphone: Click the button to associate a microphone with the camera. Once associated the mic will provide audio for recordings and be enabled and disabled with the camera. Agent will automatically add and pair a microphone control if your Camera has audio in it's stream, otherwise you will need to add a microphone to Agent first via - Add Device.
- Ignore Audio: If your camera has it's own audio stream (many IP cameras do) and you don't want Agent to use it then check this option. You will need to enable and disable the camera for this to take effect.
- Configure: Click to configure the associated microphone.
- Location: Select a location in the frame to draw the audio overlay.
- Display Style: Select a display style for visual representation of the audio on the camera live stream.
- Show Background: Show a background color behind the audio.
- Width: Width of the audio control.
- Height: Height of the audio control.
Cloud
- Provider: Which cloud provider to upload to - see - Settings - Cloud to configure cloud providers.
- Path: This is the path that Agent will upload to. For example [MEDIATYPE]/[NAME] will upload video to Video/somefilename.mp4 (the actual filename is set on the recording tab)
- Upload Recordings: Check this to automatically upload recordings
- Upload Photos: Check this to automatically upload photos
If you have issues with cloud uploads please check the logs on the local UI at /logs.html
Detector
FTP
FTP recordings or photos to your FTP servers. You can also setup basic live streaming using FTP and a bit of javascript. See Server FTP Settings
Photos
- Enabled: Switch on or off Photo upload
- Server: You will need to add your FTP server into - Settings - FTP and then select it in this list.
- Mode: Choose between Motion, Alert, Interval or None. Motion and alert only send images when something is happening. Interval will constantly send images to your server. Use None if you want to only trigger FTP images via the API.
- Interval: The minimum time between frames when mode is set to Interval
- Delay: The minimum time between frames when mode is set to Motion or Alert
- Quality: This sets the quality of the jpeg image. Lower quality has smaller file size.
- Overlay Text: Optionally add some text to the image.
- Filename: The filename that gets saved to the server for example {C}.jpg or myfiles/{C}/frame.jpg. You can use a template date format here or the special {C} which substitutes in a counter value. For example, if Counter Max is 20 you will get 0.jpg,1.jpg,2.jpg ... 20.jpg and then 0.jpg uploaded. You can also use {CAMERA} to merge in the device name (v4.4.7.0+)
- Counter Max: The maximum value for {C} - once this is reached it resets to 0.
- Invert Counter: {C} stays at 0 (so newest image is always 0) - existing files get progressively renamed up to Counter Max. Note that if your filename includes a date-time formatter this may not work correctly.
-
If you want to display the images you are uploading on a website you can use this script. (you'll need to modify the _targetimage variable to point to the image you are uploading). This will only work if you have specified a fixed filename to your uploaded image, like "myimage.jpg" (ie it continually over-writes the same file).
Video
- Enabled: Switch on or off Video upload
- Server: You will need to add your FTP server into - Settings - FTP and then select it in this list.
- Filename: The filename that gets uploaded to the server excluding the file type extension (eg .mp4) for example {C}. You can use a fixed filename like "myvideo", a template date format or the special {C} which substitutes in a counter value. For example, if Counter Max is 20 you will get 0.mp4,1.mp4,2.mp4 ... 20.mp4 and then 0.mp4 uploaded. Agent will append the file extension as it can vary depending on what format it is recording to.
- Counter Max: The maximum value for {C} - once this is reached it resets to 0.
Mask

This provides an easy way to block out areas of the video you don't want visible. Check the Enabled switch and use the tools above the preview video to black out areas you don't want visible. Note that you will need to encode your recordings (see Recording) for the mask to affect recordings.
Photos
Photos saves grabs locally and are visible within the Agent UI. See Photos
- Enabled: Switch on or off Photo saving
- AI Server: Choose the AI server to process enhance requests.
- JPEG URL: (Optional) Specify a URL here to have Agent download a snapshot from your camera instead of generating one from the decoded video stream
- Mode: Choose between Motion, Alert, Interval or None. Motion and alert only save images when something is happening. Interval will constantly save images to your server. Use None if you only want to save photos using the API
- Interval: The minimum time between frames when mode is set to Interval
- Delay: The minimum time between frames when mode is set to Motion or Alert
- Quality: This sets the quality of the jpeg image. Lower quality has smaller file size.
- Overlay Text: Optionally add some text to the image.
- Filename: The filename that gets saved to the grabs folder for example {C}.jpg. You can use a template date format here or the special {C} which substitutes in a counter value. For example, if Counter Max is 20 you will get 0.jpg,1.jpg,2.jpg ... 20.jpg and then 0.jpg uploaded.
- FTP: Upload the captured image to the FTP server specified for photos on the FTP tab (v4.0.0.1+). This will upload using the filename generated by the Photos tab settings.
- Counter Max: The maximum value for {C} - once this is reached it resets to 0.
PiP (Picture in Picture)

Picture in Picture lets you super-impose as many cameras as you like on top of other cameras. To use this, check the Enabled option, select a camera from the drop-down and draw a rectangle onto the preview video. You can then use the grab at the bottom right of the rectangle to resize it or drag the rectangle around to position it. If you want to delete the overlay click and drag it out of the preview video.
Plugin
Agent supports both video and audio plugins. Plugins provide a way for external applications to process video and audio in real time and raise alerts and detection events. You can install plugins via the remote website portal (ispyconnect.com) in - Plugins. To create your own plugins See Plugins.
PTZ (Pan, Tilt and Zoom)
Agent supports multiple PTZ (Pan, Tilt and Zoom) devices. The user interface to control PTZ is on the Live View
- Model: Choose the model of Camera you have. For digital only select Digital. If you select ONVIF here your source type on the General tab must be set to ONVIF (and configured).
- Pelco: Click the button to configure various Pelco Settings so Agent can communicate with your Pelco device.
- ONVIF: Click the button to set the speed that your ONVIF PTZ commands are set to use. You can also turn off angular PTZ control support here if your device doesn't support dual axis movement.
- PTZ URL: This is usually left blank so Agent uses your IP camera URL as the base URL to send commands but you can override it here if you need to.
- Calibration Delay: When the camera starts moving it can trigger the motion detetor. The delay here makes Agent ignore motion events when PTZ is used to prevent false alerts.
- Port: Set this to the port your camera is using for it's web interface (usually port 80)
- Channel: Optionally set the channel number (this should match the channel your camera is using)
- Username: Override the camera username (leave blank to use the default username)
- Password: Override the camera password (leave blank to use the default password)
- Flip: Mirror the left/right, up/down or both controls
- Rotate: Rotate the controls through 0, 90 degrees or 270 degrees (so left is up etc) - useful if your camera is mounted on its side.
- Zoom Out Delay: Setting this will cause the camera to automatically zoom back out after using PTZ. Useful for making sure cameras aren't left in a zoomed in state. Set to 0 to disable.
PTZ Scheduler
PTZ Schedule: Switch the PTZ schedule function on or off.
- Suspend on Move: Suspend PTZ schedule for x seconds if camera PTZ is used.
- Suspend on Motion: Suspend PTZ schedule if motion is detected.
- Configure: Click to open the PTZ Scheduler
PTZ Patrol
PTZ Patrol: Switch the PTZ Patrol function on or off (v4.4.2.0+).
- Configure: Click to open the PTZ Patrol tool.
Tracking
Tracking uses an object tracker to spot moving objects then uses the PTZ controller to follow them in the scene.
- Enabled: Switch the PTZ tracker on or off.
- Configure: Click to configure the PTZ tracker:
Tracking
- Tracking Mode: Choose from Any Direction, Horizontal or Vertical.
- Reverse: If Agent spots movement on the right it will move the camera right to center it - if it's moving quickly from right to left like traffic this option will make agent track in the opposite direction to possibly capture more of the event.
- Track Stop Delay: Agent will move the camera, stop, recalibrate and move again. This delay sets how long to move for before recalibrating.
- Auto Home: If your camera has a home command you can set it up to automatically go Home when it's stopped detecting movement.
- Home Command: Select your cameras Home Command for Auto Home
- Auto Home Delay: How long to wait after no movement is detected before triggering the home command.
PTZ Schedule
The PTZ Schedule feature lets you add a daily list of scheduled commands to control your PTZ camera. Each entry sets the start time, repeat interval, repeat count and command. This makes it easy to generate complex patrol movements. For example you can set an entry to start at 12:00:00, go to position 1 every 300 seconds (5 minutes) and repeat 12 times (so 1 hour). Then set another entry to start at 12:01:00 with the same settings but for position 2 and then at 12:02:00 for position 3 etc and you will have an hour long schedule of patrolling commands for your camera.
PTZ Patrol (v4.4.2.0+)
The PTZ Patrol feature is a new way to configure patrolling. Just add a list of patrol points with durations (time in seconds to stay at each point) and enable the patrol function to cycle through them.
You can enable and disable the PTZ patrol feature via the scheduler
Recording
Agent can record video on motion detection, alert, group detection, group alert, manual command or schedule. IP cameras frequently have 2 streams available - a low resolution live stream which is perfect for live viewing and motion detection and a high resolution main stream which is great for raw recording. If possible configure your IP camera sources (under General - Source Type) in Agent with these 2 streams for maximum performance. Agent will use the high resolution stream for direct recording without wasting CPU cycles on decoding it first.
For recording on Group Detection and Group Alert you will need to specify the group on the Alerts tab.
If you only have one stream available Agent can record that raw as well, saving CPU usage by skipping the encoder - just make sure the Encoder is set to Auto. If the recordings don't play back change the Encoder to GPU or CPU and remove the main record URL from the Source Type configuration.
If you are recording in raw mode then any overlays (mask, overlay image, timestamp etc) won't be visible on the recordings as Agent is just saving the raw video from the camera to disk. To have these elements visible you will need to encode using GPU or CPU and remove the main stream setting from the Source Type.
- Mode: Choose from Alert, Detect, Manual or Disabled. Alert will only record when motion detection causes an Alert event (see Alerts). Detect will record whenever Agent detects movement. Manual will record only when manually commanded or via the Schedule. Manual will record indefinitely - even through restarts so if you want continuous recording just press the record button on the live page. Disabled blocks all recording even if you click Record in the UI. You can use manual recording in any mode except Disabled.
- Encoder: Choose a method to use to record. Agent supports raw stream recording for most network cameras which uses basically zero CPU. The caveat being that raw recordings don't include Agent's overlays like timestamps and tracking. If files don't playback or you want overlays on your recordings then choose Encode. Agent can encode to MP4 or VP8. See the Codec setting in - Settings - General to set the output format. If Agent is writing raw files they will have a .mkv extension. Only raw files support instant playback (Playback the file whilst recording). Encoded (VP8/ MP4) files must be closed before they can be played back.
- Adaptive Framerate: As of v3.9.6.0+, Agent has a new Encoder called Motion Adaptive Encode. This records at a low framerate (this setting) with no audio when there is no motion detected but adds audio and records at up to the Max Framerate when movement is detected. This is great for keeping a continuous record whilst minimizing disk space.
- Use GPU: Check this option to use your GPU to write the files (requires then Encoder to be set to Encode and not raw above)
- Apply Transforms: Check this option to apply flip and rotate transformations to playback of raw recordings. If you have a high res camera this can cause a lot of CPU usage during playback (Especially on the time machine tab where multiple cameras may be playing simultaneously).
- Use System Clock: When recording raw some cameras generate frame timestamps that are out of sequence and can cause packet loss with recordings. You will see warnings in the logs if this is happening. Check this option to generate frame timestamps using the system clock instead. Using this option may result in choppy video playback so only enable it if raw recording has persistant issues.
- Encode GPU: Specify the GPU index to use to encode the video stream if you have multiple GPU devices available.
- GPU Encoder: Select the hardware GPU encoder to use. Use default to use the default setting.
- Filename: Enter a template filename excluding the file type extension (eg .mp4) - Agent will add the extension depending on which encoder it is using. It's best to leave the default filename here which is {id}_{0:yyyy-MM-dd_HH-mm-ss_fff}. You can also use the tags {itype} (the type ID - 1 = microphone, 2 = camera) and {name} - the device name.
- Max Framerate: If Agent is encoding this is the maximum rate to write frames. Set it low to save CPU/ disk space or high for good quality recordings.
- Max Record Time: The maximum amount of time to record for. Once this is reached Agent will finish the recording and start a new recording.
- Min Record Time: The minimum amount of time to record for.
- Inactivity Timeout: If the recording was triggered by motion or alert this controls how long to continue recording for when motion is no longer detected.
- Trigger Timeout: If the device is recording from a "Trigger Recording" action, how long to keep recording for. This timer resets with every action call to trigger recording. (v4.3.7.0+)
- Buffer: How much time in seconds to buffer video from the camera. This is basically pre-record and the video gets dumped to disk when the recording starts.
- Quality: The quality of the recording - higher is better quality. Only applies to encoded video.
Schedule
Add schedule entries to enable or disable the camera, start and stop recording and modify many other settings on a weekly calendar or specific dates (4.4.4.0+).
Tip: If you enable "Apply Schedule at Start" in - Settings - General then Agent will work out what states your devices should be in according to the schedule and apply those settings to them when it starts. Otherwise Agent will start with the devices in the state they were last in.
Click Add to add a new schedule entry:
- Enabled: Check this to make this schedule entry active. In the Schedule summary active entries have a green tick next to them whereas inactive entries have an X next to them.
- Type: Select from a specific time or sunrise or sunset. If you choose sunrise or sunset you will need to assign a location to the device on the General tab. In the location you will need to specify GPS coordinates for sunrise/ sunset calculations.
- Offset: If you are using sunrise or sunset in Type this is the offset in minutes from that time (v4.0.0.1+).
- Time: Select a local time to run the schedule entry (ignored if sunrise or sunset is used)
- Command: Choose a command to run. These are quite self explanatory except perhaps for Alert Action Run. Alert Action Run enables you to schedule alert actions to run at specific times. See Actions. There is also an option here (v4.0.9.0+) to set the sensitivty of the motion or sound detector on a schedule under Detector: Set Sensitivity.
- Date: Set the date to trigger the action on or select which days of the week to run the schedule. To switch between modes just clear any date you have set.
- Days: Select which days of the week to run the schedule. Selected days are highlighted.
Storage
See Storage Settings
Talk
Agent supports talk functions for various devices. Select the talk model here to enable talk via the user interface. Talk is available via the Live View
Timelapse
Agent can create timelapse recordings from your cameras or a series of images. Timelapse recordings are displayed on the timeline as a half-height bar and in the recordings view with a "TL" overlay. You can control timelapse generation with the scheduler.
To save photos only set a Photo Frame interval. To create timelapse videos set a Video Frame interval. For example, a frame rate of 5 and a video frame interval of 60 will generate a video file that plays 5 frames per second with each frame 1 minute apart.
- Enabled: Turn timelapse generation on or off
- Frame Rate: The frame rate of the generated video file (fps)
- Video Frame Interval: How often to write a frame to the file (0 = disable)
- Photo Frame Interval: How often to capture a photo and save it to the grabs directory (0 = disable)
- Save Every: How often to finish writing the timelapse video file and start a new one (in minutes)
Timestamp
The timestamp options let you overlay and format a timestamp (and optionally additional data) onto your live video streams. Note - this will only be visible in recordings if you are encoding (using the CPU or GPU to encode, not raw recording from the device). See Recording for more information.
- Formatter: This is the text that is placed into your timestamp. As of version 3.4.2.0 this supports multiple lines and updates via the API. You can use the tags:
- {FPS} - displays frames per second
- {0:G} - displays date and time
- {0:T} - displays time only
- {CAMERA} - displays the camera name
- {REC} - displays "REC" if the camera is recording
- {0:ddMMMyy} - displays a custom date format
- Text Color: The color of the text on the timestamp
- Font Size: The font size of the timestamp (you may need to adjust this if you have a high resolution camera)
- Outline Color: The color of the outline of the text on the timestamp
- Outline Size: The size of the outline
- Back Color: The background color of the the timestamp
- Show Background: Turn the timestamp background color on or off.
- Font Family: Choose from available fonts on your system (v3.4.2.0+, windows only).
- Align: How to align the text within it's bounding rectangle.
- Bold: Whether to bold the text or not.
- GMT Offset: Add an offset number of hours to the date that is passed to the timestamp display
- Location: Choose a location in the frame to place the timestamp
AI Services
Facial Recognition:
LPR:
See LPR