Configuration: Server Settings

About

To tailor your settings, click on the Server icon located at the top right of the Agent DVR UI, and select "Settings" from the Configuration menu. Please note, if the server icon is highlighted with a colored background, this indicates you are operating on another user's Agent DVR server through permissions, which may limit access to some features.

General

General options for your Agent DVR server, covering its name, default language, update track and how it manages CPU load.

  • Name: Assign a unique name to your Agent DVR instance. This is especially useful if you manage multiple servers on your account. Note: changing the server name may affect permissions you have assigned to other people.
  • Beta Track: Check for updates from the beta track instead of the release track.
  • Default Language: Set the default language for your server
  • Default Voice: The default voice used for text to speech.
  • Max CPU: Specify the maximum CPU usage for your server. Alerts will be sent if this limit is reached, and Agent DVR will adjust camera framerates to manage the load.
  • Tuning: Optimize Agent DVR for your hardware: Performance (high FPS, fewer cameras), Balance, or Capacity (more cameras or less powerful hardware).
  • Check for Updates: Enable checking for new versions of Agent DVR.
  • Talk Device: The audio output device used for talk playback.
  • ONVIF Discovery: Enable or disable periodic ONVIF device discovery on your network.
  • Experimental Features: Activate this to test new features in Agent. These features are typically under development and should generally be used only for testing purposes.
  • Software Encoders (FFmpeg GPL): Agent DVR uses an LGPL build of FFmpeg by default. Enable this to download the optional GPL-licensed FFmpeg build, which adds the x264 and x265 software encoders for higher quality H.264/H.265 encoding on systems without GPU acceleration. When you change this, Agent DVR downloads the selected build in the background and then restarts automatically to apply it. Systems with a supported GPU don't need this option. Both FFmpeg builds are open source - build scripts and source code are available at github.com/ispysoftware/agentdvr-ffmpeg-build, and each download includes its license texts in the licenses folder.
  • Default Camera Login: A pre-filled username and password used when adding new camera devices (useful if your cameras share one login).
  • Min Framerate: The minimum framerate cameras will be reduced to when Agent DVR is lowering CPU load.
  • CPU Priority: Set the priority of the Agent DVR process on your system. Recommend Above Normal.
  • Apply Schedule at Start: Enable this to apply your scheduling settings on startup, ensuring your devices are in the correct state according to your schedule. If unchecked, Agent DVR will start with devices in their last known state.
  • Notify on Disconnect: Activate this to receive notifications if your server disconnects from web services unexpectedly.
  • VLC Directory: Specify the installation directory of VLC (v3+). This is usually auto-detected by the system.
  • Push to Talk: Enable push to talk mode, where communication is only possible when the talk button is pressed.
  • SignalR Method: Select the SignalR method (used by Agent DVR for setting up remote connections). This is mainly for troubleshooting remote access issues.
  • Wait for SignalR: Enable this to wait for a SignalR response at startup, which can help resolve connection issues on macOS.

AI Servers

Connect Agent DVR to AI servers to add intelligent features like object recognition to your cameras.

See AI Settings

Cloud

Connect Agent DVR to your cloud storage accounts here so your cameras can upload recordings and photos offsite automatically.

Supported Cloud Providers

  • Box
  • Drive
  • DropBox
  • NextCloud / WebDav
  • OneDrive
  • OneDrive Business
  • OpenDrive
  • S3

Click the appropriate button to authorize Agent DVR to connect with your cloud host. If you encounter any issues, consider temporarily disabling 2-factor authentication on your cloud host account. Once Agent DVR has access, you can manage cloud uploads by adjusting your camera cloud settings.

S3 Cloud Storage

For S3 Storage options, oauth is not used. Instead, you'll need to provide a client ID and a secret key for uploads. Agent DVR is compatible with Amazon S3 and other S3 Providers like Google Cloud.

Amazon S3 Settings

Set up your storage account on AWS and enter the required S3 parameters. The URL field should be left blank for Amazon S3, as it's automatically configured.

Google Cloud S3 Settings

For Google Cloud S3 storage, begin by creating a new bucket in the Google Cloud interface. Then, generate an Access Key, which will provide a key and a secret for Agent DVR configuration. Set the URL to https://storage.googleapis.com. Note: The region name is not required for this setup.

FTP Servers

Configure and manage your FTP servers conveniently here. Once a server is added, you can easily select it for any camera through the editing options. For more details on camera FTP settings, please refer to camera FTP.

  • Name: Assign a local name to your server for easy identification within Agent.
  • Username: Enter your FTP server username.
  • Password: Enter your FTP server password.
  • Server: Specify your FTP server URL, starting with ftp:// or sftp:// (e.g., ftp://192.168.12.1).
  • Port: The port number your FTP server uses, typically 21 for ftp:// and 22 for sftp://.
  • Use SFTP: Enable this option if your server utilizes SFTP.
  • Use Passive: Opt for Passive FTP mode by checking this.
  • Rename: Activating this will have Agent DVR upload files under a temporary name and then rename them post-upload. This is particularly useful to minimize flicker when streaming video via FTP and javascript. Learn more.
  • Max Queue: Set a limit for the upload queue size. If this limit is reached, Agent DVR will stop accepting new files for upload. Note that the queue size is managed on a per-camera basis.

Layouts

Layouts control how your cameras are arranged on the live view. Using this tab you can add, edit and delete layouts

LDAP

Use your LDAP server (openLDAP, Active Directory etc) to handle logins. This uses the local logins feature so requires a license. You can find these settings on the LDAP tab of the Users dialog in Server Settings.

Using LDAP your users can sign into the local web client using their LDAP logins. This will authenticate them against your LDAP server and create a local account for them automatically.

  • Enabled: Turn logins with LDAP on or off.
  • Server Address: Enter your LDAP server address, eg ldap.example.com
  • Port: LDAP server port. Usually 389 or 636 for LDAP over SSL. If you are using Active Directory and encounter Referral errors, try port 3268 (Global Catalog).
  • Is Active Directory: Check this if you are using AD (it modifies some of the fields passed to LDAP).
  • Use SSL: Check if you are using a secure connection
  • Validate Certificate: Validate the server's SSL certificate. Leave this off for self-signed certificates.
  • Use Basic Authentication: Use basic authentication when binding to the LDAP server.
  • LDAP Search Base: Domain Search bases. eg DC=myorg,DC=com
  • Protocol Version: Default is 3
  • Common Name: The attribute used to match usernames, eg sAMAccountName for Active Directory or uid for openLDAP.
  • Service Login: Optional username and password for a service account used to look up user details and group membership. Required if your server does not allow anonymous binding.

Group Permissions

Using Group Permissions you can add LDAP user group names and permissions to apply to those groups. You must add at least one LDAP group to configure LDAP logins. When a user logs in the system will match their LDAP usergroup membership against these groups and apply the permissions it finds. If a user is a member of multiple groups the permissions will be combined (via an OR operation).

LDAP Configuration Examples

Active Directory (Windows Server)

Basic Configuration

Server Address
dc1.company.local
Port
389 (LDAP) or 636 (LDAPS)
Is Active Directory
Enabled
Use SSL
Enabled (recommended)
Use Basic Authentication
Enabled
LDAP Search Base
DC=company,DC=local
Protocol Version
3
Common Name
sAMAccountName

Service Login (Optional)

Password
[service account password]
Login Formats:
Users can login with:

OpenLDAP Server

Basic Configuration

Server Address
ldap.company.com
Port
389 (LDAP) or 636 (LDAPS)
Is Active Directory
Disabled
Use SSL
Enabled (recommended)
Use Basic Authentication
Enabled
LDAP Search Base
dc=company,dc=com
Protocol Version
3
Common Name
uid

Service Login (Required)

Username
cn=ldap-reader,ou=system,dc=company,dc=com
Password
[service account password]
Important:
Service account is required for user searches since anonymous binding is typically disabled.
User Login:
Users login with their uid:
john.doe

ForumSys Public Test Server

Basic Configuration

Server Address
ldap.forumsys.com
Port
389
Is Active Directory
Disabled
Use SSL
Disabled (test only)
Use Basic Authentication
Enabled
LDAP Search Base
dc=example,dc=com
Protocol Version
3
Common Name
uid

Service Login (Not Required)

Username
(leave blank)
Password
(leave blank)
Test Users Available:
einstein / password
newton / password
galieleo / password
tesla / password

Google Secure LDAP

Basic Configuration

Server Address
ldap.google.com
Port
636
Is Active Directory
Disabled
Use SSL
Enabled
Use Basic Authentication
Enabled
LDAP Search Base
dc=company,dc=com
Protocol Version
3
Common Name
uid

Service Login (Required)

Username
[service account email]
Password
[service account password]
Required:
Service account must be configured in Google Admin Console with proper LDAP permissions.

Configuration Notes & Troubleshooting

SSL/TLS Recommendations

  • Production: Always use SSL (port 636) or StartTLS (port 389 with SSL enabled)
  • Testing: Non-SSL connections acceptable for testing environments only

Active Directory vs OpenLDAP

  • Active Directory: Use sAMAccountName for Common Name
  • OpenLDAP/Others: Typically use uid for Common Name

Port Selection

  • 389: Standard LDAP (can use StartTLS)
  • 636: LDAP over SSL (LDAPS)
  • 3268: AD Global Catalog (unencrypted)
  • 3269: AD Global Catalog over SSL

Service Accounts

  • Active Directory: Can use UPN format ([email protected])
  • OpenLDAP: Requires full DN format (cn=service,ou=users,dc=domain,dc=com)
  • Optional: If not specified, user credentials will be used for group lookups

Common Issues

Ensure SSL certificates are valid or configure certificate validation properly.

Ensure LDAP ports are accessible from your server and firewall rules allow traffic.

Service account must have read permissions on user and group objects.

Search base must be broad enough to include all users and groups in your directory.

OAUTH

Use a third-party Identity Provider (like Okta, Microsoft Entra ID, Google, etc.) to handle logins via the OAuth 2.0 and OpenID Connect standards. This uses the local logins feature so requires a license.

Using OAuth2, your users can sign into the local web client using their existing company credentials. This will authenticate them against your provider, and if successful, will create or update a local account for them automatically.

  • Enabled: Turn logins with OAuth2 on or off.
  • Provider Name: A friendly name for the provider that appears on the login button, for example "Sign in with Google".
  • Client ID: The unique public identifier for your application, provided by your Identity Provider.
  • Client Secret: The Client Secret for your application. Keep this confidential.
  • Issuer: The root URL of your provider's authorization server. This is the base URL from which all other endpoints are discovered.
  • Authorization Endpoint: The URL where the user is sent to log in.
  • Token Endpoint: The URL your application uses to exchange the authorization code for an ID token.
  • Redirect URI: The exact URL the provider will send the user back to after a successful login. This must be whitelisted with your provider. For LAN apps, this is typically a localhost address (e.g., http://localhost:8090/).
  • Scope: A space-separated list of permissions your app is requesting. At a minimum, this must include openid profile email and a scope for groups e.g., groups
  • Username Claim: The name of the claim in the ID token to use as the user's unique username. Standard practice is to use preferred_username or email
  • Group Claim: The name of the claim in the ID token that contains the user's group memberships. This is often groups

Group Permissions

Using Group Permissions you can map group names from your Identity Provider to a set of permissions in this application. You must add at least one group mapping to configure OAuth2 logins. When a user logs in, the system will check the group claims in their token, match them against these rules, and apply the permissions it finds. If a user is a member of multiple mapped groups, the permissions will be combined (via an OR operation), giving them the most permissive access.

OAuth2 Configuration Examples

Okta

Provider Configuration

Issuer
https://your-tenant.okta.com
Authorization Endpoint
https://your-tenant.okta.com/oauth2/v1/authorize
Token Endpoint
https://your-tenant.okta.com/oauth2/v1/token
Client ID
Found in Okta Application settings
Redirect URI
http://localhost:8090/
Scope
openid profile email groups
Username Claim
preferred_username
Group Claim
groups

Okta Setup Notes

Important Configuration:
In your Okta Application's General Settings, you must whitelist your URLs:
  • Sign-in redirect URIs: Add your full Redirect URI (e.g., http://localhost:8090/).
  • Sign-out redirect URIs: Add the URL you want users sent to after logout (e.g., http://localhost:8090/).
Getting Group Claims:
To include groups in the token, go to your Okta Application's Sign On tab, edit the "OpenID Connect ID Token" section, and configure a Groups claim filter.
Firewall / 403 Errors:
If you get connection errors, you may need to add your Redirect URI to the trusted list under Security > API > Trusted Origins.

Troubleshooting

This almost always means the Sign-in redirect URI or Sign-out redirect URI is not correctly configured and whitelisted in your provider's application settings. The URL must match exactly what the application is sending.

Your Identity Provider is blocking the request from your server. This is usually a firewall or security policy. In Okta, you must add your application's base URL (e.g., http://localhost:8090) to the trusted list under Security > API > Trusted Origins. Other providers may have similar "CORS" or "Web Origins" settings.

This can have several causes:
  • The Scope in your configuration is missing the required scope for groups e.g., groups
  • The user you are testing with is not a member of any groups in the Identity Provider.
  • The provider is not configured to send the groups claim. In Okta, you must explicitly configure a Groups claim filter in the Application's "Sign On" settings to add the groups to the ID Token.
  • The Group Claim name in your configuration does not match the claim name in the token e.g., your config says groups but the token contains roles

Licensing

Use this tab to license Agent DVR for business use/ enable port forward remote access.

Do you have a license for Agent DVR and want to move it to a new computer? See License Transfer. You can just delete the old license and it will let you add a new license for the new computer.

You can also purchase licenses in volume via Invoice. See Volume Licensing.

Licensing via commandline

If you don't have access to Agent via the local network (for example you are using ProxMox or some other virtual environment) then you can license Agent DVR using the following commands. Access the computer using the terminal and go to the folder containing the Agent executable. Make sure Agent isn't running:

These commands should work on v5.9.3.0+

  • sudo systemctl stop AgentDVR.service
  • Agent show-id
    This will display the Unique ID you need to license agent or transfer your license.
  • Agent license "LICENSE-GOES-HERE"
    Call this with your license and restart Agent to apply.
  • sudo systemctl start AgentDVR.service
    to restart the Agent DVR service.

For older versions:

  • sudo systemctl stop AgentDVR.service
  • Get your Unique ID by editing Agent/Media/XML/config.xml and look for UniqueID. Agent will need to have been run at least once to generate this file.
  • License Agent and then copy the license text into a new (or existing) field in the same file: <License>LICENSE-GOES-HERE</License>.
  • sudo systemctl start AgentDVR.service
    to restart the Agent DVR service.

White Labelling

Once Agent DVR is Licensed you can white label it for your business or your clients using the options on the Whitelabel Options tab (requires a white-label license):

White labelling options apply to your own server UI not to our remote web platform
  • Product Name Set an alternate product name to appear at the top of the UI (max 6 characters)
  • Show Logo Upload a logo using the Server Menu - File Upload option and this will be displayed by clients whilst the web app loads.
  • Show Help Links Switch on or off help links in the app that take the user to our website.
  • Show Remote Show or hide links to our remote services and integrations.
  • Show Licensing Show or hide this licensing tab. Note that if this tab is hidden the only way to display it again is to stop the Agent DVR service, edit Media/XML/config.xml in the Agent DVR directory and set ShowLicensing to "true" and then restart it.
  • About Text Set the text that is displayed when you click on the Information icon in the UI.

Local Server

These settings control the built-in web server that hosts the Agent DVR user interface. Change them to move the web server port, enable HTTPS or restrict who can connect.

  • Port: The local port used by Agent. Default is 8090.
  • WAN Port: If you have port forwarded Agent DVR then specify the External port here (used for mobile application connections).
  • SSL Port: The port for SSL connections to your server. Set to 0 to disable. Before setting this, please read the guidelines.
  • SSL Only: Accept only SSL requests. Test that SSL is working first!
  • SSL Certificate: The certificate file for SSL connections.
  • SSL Password: The password for your SSL certificate.
  • Trusted Proxies: IP addresses of reverse proxies allowed to report the real client IP. Leave blank unless you run a proxy (e.g. nginx, Caddy, Cloudflare Tunnel) in front of Agent.
  • Bind to Interface: By default, Agent DVR monitors all interfaces. You can specify a particular network interface for monitoring here. If this setting disrupts access, you can revert to the default by setting BindInterface to '*' in Agent/Media/XML/config.xml.
  • Protect API: Enable basic authentication for API endpoints. Note that this may affect some integrations.
  • Access Timeout: Set a time limit for server access via permissions (in minutes). 0 for unlimited access.
  • Max Sessions: Limit the number of simultaneous web browser connections. Exceeding connections will be disconnected. Set to 0 for unlimited.
  • Enable ZeroConf: Enable the automatic network discovery service, which allows Agent DVR to be discovered by other applications including the mobile apps and the Windows tray app.
  • Block External Access: Check this option to completely block access from the remote web portal.
  • AI Assistant (MCP) Endpoint: Serve the AI assistant endpoint at /mcp on this web server, under the same access rules as the API. On by default; turn off to refuse all assistant connections to this server.

Turn Server

The TURN server is key to enabling remote access to your Agent DVR server and devices. It helps facilitate connections when direct peer-to-peer connections are not possible, such as when devices are behind NATs or firewalls.

Agent DVR comes with a built in TURN server and configures it and keeps it running automatically. You can also use your own TURN server if you have a license for remote access.

  • STUN Servers: List of publicly available STUN servers to use when setting up connections.
  • TURN Server: Specify whether to use the inbuilt TURN server or a custom TURN server. Disabling the TURN server may break access.
  • TURN Address: The IP address to use for the TURN server. Leave blank for automatic.
  • TURN Port: The STUN/ TURN server port (default 3478).
  • TURN Server min port: Lower bound of the port range for TURN relay allocations. Default is 50000. Forwarding this range is recommended but usually not required, as relay traffic normally travels through the TURN port.
  • TURN Server max port: Upper bound of the port range for TURN relay allocations. Default is 50100. Forwarding this range is recommended but usually not required.

Use the Custom TURN server settings if you want to use an externally hosted TURN server for direct remote connections to Agent DVR. If you configure these options you'll need to set the TURN server mode above to Custom. You'll need to get these details from your provider. A license is required for remote access to Agent DVR.

User Interface

These options customize the Agent DVR interface, from default timestamps on video and date and time formats to which sections of the UI are available.

Limits

  • Max Alerts: The maximum number of alerts to store. When this limit is reached Agent will delete old alerts.
  • Views: The number of available views on the live screen.
  • Plans: The number of available plans on the floor plans screen.

Timestamp Defaults

The default timestamp style for cameras that use the global timestamp settings.

  • Formatter: The timestamp text. Example: {FPS},{RES},{0:G},{0:T},{NAME},{REC},{0:dd MMM yy}
  • Position: Where the timestamp appears on the video, or None to hide it.
  • Text Color / Back Color: The text and background colors of the timestamp.
  • Show Background: Draw a background behind the timestamp text.
  • Opacity: The opacity of the timestamp background.
  • Auto Font Size: Size the timestamp font automatically based on the video resolution, or uncheck to set a fixed Font Size.
  • Outline Color / Outline Size: Add an outline to the timestamp text.

Time Formats

  • Culture Code: Set the culture code for date formatting on timestamps (e.g., en-US for American English, fr-CA for Canadian French). See this list for more options.
  • Time Format: Choose the format for date and time display in the Agent DVR UI. Default is 12-hour format ("MMM DD YYYY h:mm:ss A"). For 24-hour format, use "YYYY-MM-DD H:mm:ss".
  • Time Format (small): Choose the format for small date display in the Agent DVR UI. Default is 12-hour format ("MMM DD h:mm A").
  • Date Format: Choose the date format
  • YYYY: 4-digit year '2019'
  • YY: 2-digit year '19'
  • MMMM: Full-length month 'June'
  • MMM: 3 character month 'Jun'
  • MM: Month of the year, zero-padded '06'
  • M: Month of the year '6'
  • DD: Day of the month, zero-padded '01'
  • D: Day of the month '1'
  • Do: Day of the month with numeric ordinal contraction '1st'
  • HH: hour of day from 0-24, zero-padded, '14'
  • H: hour of day from 0-24, '14'
  • hh: hour of day on 12-hour clock, zero-padded, '02'
  • h: hour of the day on 12 hour clock, '2'
  • mm: minute, zero-padded, '04'
  • m: minute, '4'
  • ss: second, zero-padded
  • s: second
  • A: 'AM' or 'PM'
  • a: 'am' or 'pm'

Player Defaults

  • Skip to Motion: When playing back recordings skip to the first instance of movement.

Tags

  • File Tags: The set of available tags for tagging recordings. This is automatically populated as you tag recordings or you can edit it here.
  • Image Tags: The set of available tags for tagging images. This is automatically populated as you tag images or you can edit it here.

Sections

Check the available viewers to display in the UI. Uncheck any sections you wish to hide. Check the "Admin has all" button to enable all sections for administrators.

Logging

Control how much detail Agent DVR writes to its logs. Turn up the log level or the component options below when troubleshooting an issue, then turn them back down to keep log files manageable.

  • Max Log Size: Determines the maximum number of entries that can be held in the log queue.
  • Log Level: Choose how much detail to log, from None up to Debug.
  • WebRTC: Enables logging of WebRTC connections, useful for debugging live view issues.
  • ONVIF: Enables debug logging for ONVIF devices.
  • FFMPEG Log Level: Adjust the debug output level for ffmpeg. Caution: The Trace setting can rapidly fill your logs and should be used only briefly for specific debugging purposes.
  • SignalR Logging: Enables logging of communications with the SignalR server, useful for detailed debugging.

Syslog Logging

Agent DVR can stream its logs to a syslog server (v6.2.6.0+). This can be useful for monitoring and debugging. You can configure the server to send logs to in Logging.

  • Enabled: Toggle to turn Syslog Logging on or off.
  • Server: Specify the server address eg: logs1.papertrailapp.com
  • Port: The port to use
  • Category: Select the Syslog Category (or Facility).

MQTT

MQTT, a key IoT messaging protocol, facilitates seamless integration of devices and services across your network. Configure MQTT settings here to enable MQTT Events on your devices, or use Actions for sending custom messages to the MQTT server. Also, Agent DVR can be configured to react to MQTT commands. For more details, see MQTT.

  • Enabled: Toggle to activate or deactivate MQTT.
  • Server: Input the IP address of your MQTT Server.
  • Port: Specify the port used by your MQTT Server (default is 1883).
  • Home Assistant Discovery: Advertise devices that have MQTT Events enabled to Home Assistant, so they appear there automatically with sensors and switches. See Home Assistant for details.
  • Check Interval: Set the interval in seconds for Agent DVR to send keep-alive messages, ensuring a stable connection.
  • Protocol: Choose the connection protocol, either None or TLS.
  • LWT delay: Sends an offline message to the status topic after a delay (in seconds, 0 to disable).
  • Validate Certificate: Validate the server's TLS certificate. Leave this off for self-signed certificates.
  • Protocol Version: The MQTT protocol version to use. Leave on Default unless your server requires a specific version.
  • QoS: Quality of Service level. Refer to your MQTT server documentation for details.
  • Client ID: Your MQTT client ID. Leave blank to generate automatically.
  • Username: Your MQTT server username.
  • Password: Your MQTT server password.
  • Discovery Prefix: The topic prefix used for Home Assistant discovery messages (default is homeassistant). Only change this if you have changed the discovery prefix in Home Assistant's MQTT integration.
  • Send Stats: Enable this to allow Agent DVR to send statistics to MQTT, such as CPU usage, memory usage, and drive usage.

NDI

NDI (Network Device Interface) simplifies the process of accessing IP video sources, offering built-in discovery features. Many cameras and video surveillance systems are already NDI-ready, making integration with Agent DVR effortless. For more information about NDI technology and compatible devices, visit ndi.tv. Agent DVR supports NDI sources with video and audio capabilities, as well as PTZ control via NDI.

  • Groups: Here, you can add NDI groups if applicable. Enter each group on a new line.
  • Extra IPs: Add specific NDI IP addresses for device scanning. Each IP should be on a new line.
  • Show local devices: Toggle this option to decide whether NDI devices on the local computer (which is running Agent DVR) should be displayed in the list.

ONVIF

Agent DVR utilizes keywords in ONVIF event XML packets to identify motion events. Since these packets can vary across different camera models, we provide an option for you to add custom event XML from your camera to trigger ONVIF events. This feature is particularly useful if you encounter issues with standard ONVIF event detection.

  • Detect XML: Insert the specific ONVIF XML event packet from your camera here.
  • Event Logging: Enable this to log all incoming XML from the camera, which is helpful for debugging purposes. Access these logs at /logs.html on your local server.

For instance, if you notice entries in the logs at /logs.html like:


Ignored ONVIF event: <tt:Source xmlns:tt="http://www.onvif.org/ver10/schema"><tt:SimpleItem Name="VideoSource" Value="V_SRC_000" /><tt:SimpleItem Name="Rule" Value="MyMotionDetectorRule" /></tt:Source><tt:Data xmlns:tt="http://www.onvif.org/ver10/schema"><tt:SimpleItem Name="State" Value="true" /></tt:Data>

And Agent DVR is not recognizing it as a motion event, you can add the following to the Detect XML field:


<tt:SimpleItem Name="Rule" Value="MyMotionDetectorRule" /></tt:Source><tt:Data xmlns:tt="http://www.onvif.org/ver10/schema"><tt:SimpleItem Name="State" Value="true" /></tt:Data>

Agent DVR will then interpret events containing this specific text as motion events.

Playback

These settings govern how Agent DVR renders and delivers video to the web browser and through the API.

  • Max Stream Size: Sets the highest resolution for streaming to the web client. Higher resolutions can significantly increase CPU usage.
  • High DPI: Streams video at the full resolution of high-density displays (4K monitors, Macs, phones) for a sharper picture, at the cost of more encoding load. Stream size limits still apply.

    • Disabled: Standard resolution (default).
    • GPU: Full resolution only for viewers using GPU encoding, where the extra load is negligible.
    • Enabled: Full resolution for all viewers. Increases CPU usage with software encoding.

  • Default Font: The default font used for rendering text like timestamps onto video.
  • Video FPS: The maximum frames per second (framerate) for video sent to the web browser.
  • Fill Mode: Choose whether the camera image fills the available space (Fill) or keeps its original aspect ratio (Center).
  • Use GPU: Enable GPU usage for decoding saved video files.
  • Use GPU for web client: Use the GPU to encode video streamed to web clients. Requires Force H264.
  • JPEG Quality: The default quality setting for encoding jpeg images. Higher values can use more CPU and storage.
  • Max MJPEG Size: The maximum MJPEG stream size Agent DVR will generate via the API.
  • Default MJPEG Size: The default MJPEG stream size Agent DVR will generate via the API, used when no size parameter is specified.
  • Force H264: Use H264 for streaming video to clients. Uncheck this if the live view stops working.
  • Default GPU Device: Choose the default GPU device to use when you have more than one.
  • Default GPU Decoder *: Choose the preferred hardware decoder. Agent DVR will try other options if the preferred one fails.
  • Default Record Codec *: Choose the preferred hardware encoder. Agent DVR will use alternative options if necessary.
  • AI Shard Size: The maximum number of devices per inference session in the internal AI system. Lower values improve stability under high concurrency at the cost of additional GPU memory. Changes apply after restart.
  • High Performance Resizing: Use a basic resizing algorithm to reduce CPU usage. This is fast but can result in jagged lines in images.
  • Resize files for playback: Resize recorded files when playing them back to reduce load. Uncheck this for full resolution photo support during playback.

* Note that GPU encoding and decoding depend on your computer's hardware compatibility, drivers, and FFmpeg library support. To check if Agent DVR is utilizing your hardware devices, start a recording and view the logs at /logs.html in the local client. Agent DVR should revert to CPU-based encoding if GPU encoding is unsuccessful.

RTMP Servers

Agent DVR offers the capability to stream video to RTMP endpoints like Twitch and YouTube, enabling you to broadcast or embed the stream on your website. For more information on how to embed these streams, please refer to RTMP Settings.

RTMP streaming can be activated from the Server menu or scheduled to start and stop automatically using a device scheduler.

  • URL: The RTMP endpoint to publish video to, typically in the format of rtmp://a.rtmp.youtube.com/live2.
  • Stream Key: Refer to the embedding guide linked above for instructions on obtaining your stream key.
  • Size: Select a resolution for your broadcast. Remember, higher resolutions consume more bandwidth and CPU resources.
  • Quality: Adjust the basic quality setting. The default is 8. Lower values mean reduced quality but also lower bandwidth usage.
  • Frame Rate: Set your desired frame rate for the video. The default is 15 frames per second.
  • Codec: Choose the encoder used for the stream. GPU encoders reduce CPU usage.
  • Include Audio: Include audio in your stream. If disabled, Agent DVR will create a dummy silent audio track.
  • Max Duration: Set the maximum streaming duration in seconds. Agent DVR will stop streaming after this period. Enter 0 for continuous streaming.
  • Stream at startup: Start streaming to this server when Agent DVR starts, using the last device streamed to it.

Security

These settings are designed to manage how Agent DVR handles the arming and disarming of the system, either through the UI lock icon or via integrations/API.

  • Arm Delay: The time delay in seconds from when you click the Arm icon (the lock icon at the top left in Agent) to when Agent DVR actually activates alerts.
  • Disarm Code: This code is used to disarm Agent DVR, applicable in tools like Alexa. The default code is 1234.
  • Arm Profile: Choose a profile to automatically apply when the system is armed (using the lock icon in the top left corner of the UI).
  • Disarm Profile: Choose a profile to automatically apply when the system is disarmed (using the unlock icon in the top left corner of the UI).

SMTP

Use these settings to send email alerts from Agent DVR through your own mail server. You have the option to use an ispyconnect.com subscription for email alerts or configure your own SMTP server. Remember, to send emails, you need to set up an action for email sending. For help with any issues, refer to SMTP Troubleshooting.

  • Use SMTP: Enable this to use your own SMTP server for messaging.
  • Username: Your SMTP server username.
  • Password: Your SMTP server password.
  • From Address: The email address to send from, for example, [email protected].
  • Server: The IP or web address of your SMTP server.
  • Port: The port your SMTP server uses. The default is 25.
  • Use SSL: Enable this option for SMTP communication over SSL.
  • Alert Template: Set the default Subject and Message for alert emails.
  • Validate Certificate: Validate the server's SSL certificate. Leave this off for self-signed certificates.
  • Send full size images: Check this to send images in full resolution instead of sending resized, smaller versions.
  • Embed Images: Show images in the mail body. This can cause duplicate images in some email clients.

Storage

These options help with disk management for your recordings: get an email warning before a storage location fills up and protect important footage from automatic deletion.

  • Configure: See Storage Settings
  • Storage Email Address: Provide an email address to receive alerts when storage limits are reached. This requires SMTP settings or a subscription.
  • Notify Trigger: Set the percentage of used space in the storage location to trigger an email notification. Note that this refers to the allocated max space, not the free space on the drive.
  • Email Interval: Determine the frequency of storage warning emails, measured in hours.
  • Storage Interval: Adjust the frequency of Storage Management operations by Agent DVR.
  • Auto Lock Tags Automatically lock recordings with specified tags to prevent accidental deletion or removal by storage management. To delete these recordings, you will need to unlock them in the UI.

Users

For information on remote user permissions, please refer to Remote Permissions.
Note: The free version of Agent DVR allows for one admin user to be added.

With an appropriate license, you can add multiple users with different permissions to your local Agent DVR server, for example to give family members or a security team their own logins with limited access.

To add users, go to Server Settings and access the Users tab.

  • Username: This is the username for local server login (it is different from your ispyconnect.com username).
  • Password: Create a password for the local account.
  • Groups: Assign or create groups for the user. Groups function similarly to remote user permissions, but there's no need to include the server name. To restrict access:
    • Assign a group name in the device settings under the General tab (e.g., "outside").
    • In the user's permissions, add the group "outside" to restrict their access to devices labeled as such.
    • Assign a group name to all other devices - if a device is not assigned to a group it will be visible to everybody.
  • Is Admin: Grants full access to all features and settings. If the user is an admin, the 'Read Only' setting below is disregarded.
  • PTZ: Allows PTZ (Pan-Tilt-Zoom) control access.
  • Own Settings: The user can save their own views, filters, floorplans and key mappings. If this is unchecked they will use the admin accounts configuration.
  • Read Only: Restricts the user from modifying device settings.
  • Downloads: Permits the user to download recordings.
  • Audio: Allows the user to listen to live and recorded audio.
  • Talk: Enables the user to use talk-back features.
  • Controls: Allows the user to use device controls like record and photo. Only applies if Read Only is checked.
  • Content: Allows access to recordings and photos.

Forgot the Admin Login?

If you forget the admin login and are locked out of Agent DVR, you can reset it by following these steps:

  • Stop the Agent DVR service, if it's running.
  • Open a console window: Click Start, type "cmd", right-click on "Command Prompt" and select "Run as administrator".
  • Navigate to the Agent DVR directory, typically "cd C:\Program Files\Agent".
  • Reset the local password by typing "Agent.exe reset-local-login" on Windows or "dotnet Agent.dll reset-local-login" on macOS and Linux.
  • Restart the Agent DVR service using the same method as for stopping it.

You can automate the adding of new users using LDAP or OAuth2.

Session Management

From the Server menu, click on Session Management to access these controls. This is only visible to administrators.

This displays the usernames and IP addresses of recent logins to the server. You can force disconnect specific sessions from here.

The Session Log

From version 6.2.8.0, Agent DVR also keeps a plain text audit log of session activity in sessionlog.txt, located in the Media folder (on Windows this is typically C:\Program Files\Agent\Media). This covers both local user accounts and remote users connecting through the website - each entry records whether the session was local or remote.

The session log records:

  • User connections and disconnections, with the username, IP address and session ID.
  • Playback of recordings, including timeline playback.
  • Downloads and streaming of recorded files.

When the log file reaches 10MB it is renamed with a timestamp and a new log file is started, so recent history is always available without the file growing indefinitely.