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

Editing a camera

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"
  • Location: Click the button to manage locations. You can add locations like "Main House" and assign a color to them. When devices are assigned to locations they will be color coded in the live view.
  • Groups: This is used in permissions
  • Source Type: Choose how Agent connects to your devices. See Video Source Types
  • 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).
  • 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.
  • Decoder: Which decoder to use. Options are Auto, GPU, CPU, None and VLC. Auto will try to use GPU and fall back to CPU if it fails. CPU will use FFMPEG to decode. VLC will use the VLC application to decode. None means that Agent won't decode at all - which is useful if you just want scheduled recordings with no live view or motion detection.
    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)
  • 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 90: Rotates the video through 90 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.

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


Audio:

  • 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.
  • Configure: Click to configure the associated microphone.
  • 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.

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

Detector:

See See Motion Detection


Facial Recognition:

See Facial Recognition


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

  • Server: You will need to add your FTP server into - Settings - FTP and then select it in this list.
  • Photos

  • Enabled: Switch on or off Photo upload
  • Mode: Choose between Motion, Alert or Interval. Motion and alert only send images when something is happening. Interval will constantly send images to your server.
  • 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. 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.
  • 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.
  • 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
  • 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
  • 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.

LPR:

See LPR


Mask:

Editing a 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.


Object Recognition:

See Object Recognition


Photos:

Photos saves grabs locally and are visible within the Agent UI. See Photos

  • Enabled: Switch on or off Photo saving
  • 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 or Interval. Motion and alert only save images when something is happening. Interval will constantly save images to your server.
  • 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.
  • Counter Max: The maximum value for {C} - once this is reached it resets to 0.
  • 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

PiP (Picture in Picture):

Setting up 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.
  • 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.
  • 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-X: Mirror the left/right controls (useful if your camera is upside down)
  • Flip-Y: Mirror the up/down controls (useful if your camera is upside down)
  • Rotate 90: Rotate the controls through 90 degrees (so left is up etc) - useful if your camera is mounted on its side.
  • 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
  • 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.


Recording:

Agent can record video on motion detection, 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.

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 or None. Alert will only record when motion detection causes an Alert event (see Alerts). Detect will record whenever Agent detects movement. None will record only when manually commanded or via the schedule.
  • Encoder: Choose form Auto, GPU, CPU or None. Auto will use None if available (None means Raw - ie no encoding, just saving the raw stream from the camera to disk). Otherwise it will use GPU if available and lastly CPU. 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.
  • 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}
  • 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.
  • 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.

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.
  • Time: Select a local time to run the schedule entry
  • Days: Select which days of the week to run the schedule. Selected days are highlighted.
  • Command: Choose a command to run. These are quite self explanatory except for perhaps Alert Action Run. Alert Action Run enables you to schedule alert actions to run at specific times. See Actions.

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.

  • 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
  • Back Color: The background color of the the timestamp
  • 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.
  • Show Background: Turn the timestamp background on or off. If Off Agent will outline the text with the foreground and fill it with the background.
  • Font Size: The font size of the timestamp (you may need to adjust this if you have a high resolution camera)
  • 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