Source Types are configured when editing cameras on the General tab. This is where you configure the connection to your camera.


Clone:

Clone is a simple source type that lets you copy the camera complete with video and audio streams into a new device. You can then run different motion processing or recording rules and alerts on the new device without affecting the original. If the original is disabled the clone will lose it's video connection.

  • Camera: Choose the device to clone.

Desktop:

Desktop video sources are available on all platforms apart from when running as a Windows Service. If you need desktop capture on Windows you will need to run Agent as a local console application instead of as a service. To do this see Troubleshooting.

  • Screen: Select the screen to record from
  • Capture Mouse: Check to capture the mouse pointer as part of the video
  • Area: Click and drag out an area of the screen to capture (only available on Windows).

Dummy:

Dummy devices let you use either a solid color or image as a background. You can use this for testing or you can use Picture in Picture to add video from other devices to it. This is also useful for RTMP streaming multiple cameras.

  • Width: The pixel width of the dummy camera, eg 640
  • Height: The pixel height of the dummy camera, eg 480
  • Frame Rate: The framerate of the camera, eg 10
  • Back Color: The color of the video background
  • Image: A path to an image on your local drive. This overrides the back color.

DVR:

The DVR option provides access to commonly used DVR devices that don't have regular rtsp or http video endpoints.

  • Model: Choose from supported models.
  • Host: Enter the IP address of your DVR on your network and the Port it's running on, or omit the port and we'll use the model default.
  • Username: The username you use to login to your DVR
  • Password: The password you use to login to your DVR
  • Channel: The channel of the camera on your DVR (if a DVR has 4 cameras you would add 4 cameras using channels 1-4, or possibly 0-3)

File:

File lets you load in a previously recorded video clip and play it back as a camera in Agent.

  • File Path: Enter the local path to the video file
  • Loop: Check this to replay the file when it ends

IP Camera:

This is used to connect to network (IP) cameras. This uses FFMPEG to connect to your camera. If FFMPEG is unable to connect you can use VLC instead by installing VLC and selecting VLC as the encoder

  • Username: The username to login to your camera (not iSpyConnect)
  • Password: The password to login to your camera (not iSpyConnect)
  • Live URL: The connection to the live video stream from your camera - If your camera has a low resolution stream use that here. Click the "..." button to start the wizard to discover available connections.
  • Record URL: The connection to the record (main) video stream from your camera - If your camera has a high resolution stream use that here. Click the "..." button to start the wizard to discover available connections.

JPEG:

Connect to JPEG sources. Usually you would use the IP Camera option for this but it's here as a backup as some cameras are incompatible with the IP Camera option.

  • Username: The username to login to your camera (not iSpyConnect)
  • Password: The password to login to your camera (not iSpyConnect)
  • Live URL: The connection to the live video stream from your camera. Click the "..." button to start the wizard to discover available connections.

Local Device:

Connect to USB cameras or other locally attached hardware video sources.

  • Device: Choose a local video device from the detected devices.
  • Video Resolution: Select a video resolution to use.
  • Audio: Optionally choose an audio device to use with the video device.

MJPEG:

Connect to MJPEG sources. Usually you would use the IP Camera option for this but it's here as a backup as some cameras are incompatible with the IP Camera option.

  • Username: The username to login to your camera (not iSpyConnect)
  • Password: The password to login to your camera (not iSpyConnect)
  • Live URL: The connection to the live video stream from your camera. Click the "..." button to start the wizard to discover available connections.
  • Record URL: The connection to the record stream from your camera. Click the "..." button to start the wizard to discover available connections.
  • Use Internal Decoder: The FFMPEG decoder Agent uses has trouble decoding some streams with non standard boundary markers. Check this to use our internal decoder instead. Note that this will mean the Record URL won't be used.

Nest:

This provides support for Nest or DropCam cameras. You'll need to make your cameras publicly available for Agent to be able to access them.

  • Public URL: Enter the public URL where your camera is available
  • Get Video URLs: Click the button and Agent will discover the direct link to your video stream
  • Video URL: This will be populated by clicking the Get Video URLs button

ONVIF:

Agent provides built in support for almost all ONVIF compatible cameras. Check the logs at /logs.html for errors if you can't connect to your ONVIF devices.

  • Username: The username to login to your camera (not iSpyConnect)
  • Password: The password to login to your camera (not iSpyConnect)
  • Service URL: The URL to the service definition for your camera. Agent can usually find these automatically. To show discovered addresses start typing "http" into the box. If it hasn't found your device you can add this manually. It should look like http://IPADDRESS:PORT/onvif/device_service
  • RTSP Port Override: Override the RTSP port of your camera - this is useful if you have port forwarded the camera on another network using a different RTSP port but usually just leave this as 0.
  • Timeout: How long Agent should spend trying to connect to your camera before giving up.
  • Discover: Click this button and Agent will connect to your camera with the provided username and password and retrieve the video connection options and populate the URLs below.
  • Live URL: When discovery has completed, choose a low resolution video stream here for live viewing and motion detection.
  • Override URL: Optionally add an override URL for the Live URL if you would rather use that than one of the discovered options.
  • Record URL: When discovery has completed, choose a high resolution video stream here for raw recording.
  • Override URL: Optionally add an override URL for the Record URL if you would rather use that than one of the discovered options.
  • Use Snapshot URI for Photos: Check this option to download photos directly from the camera rather than generating images from the live video stream.

Advanced:

Advanced options provide additional tools to help you connect to your devices. Access this via Edit Camera, General tab, click to configure the video source and select Advanced in the drop-down menu.

  • GPU: Specify the GPU index to use to decode the video stream if you have multiple GPU devices available.
  • Cookies: Add any cookies your camera needs to access the video stream
  • Basic Authentication: Agent will try to login to your camera with Basic Authentication - you can turn that on or off here
  • Use HTTP 1.0: Force use of HTTP 1.0 - some old cameras don't support newer versions of the HTTP protocol
  • Headers: Add any additional headers your camera needs to access the video stream
  • User Agent: Set the user agent of the connection if your camera requires it
  • Width and Height: Use this with the "Resize" option in General to have Agent resize the incoming video stream.
  • Connection Timeout: How long to wait for the camera to respond before giving up.
  • Reconnect Interval: Set this to periodically close and reconnect the connection to the camera.
  • Reconnect Strategy: If your camera connection is lost Agent will attempt to reconnect to it on an elastic schedule - which means after 2, 5, 10, 30 seconds. You can change this to Immediate here instead.
  • Use record stream when maximised: Turn this on to live view the record (high definition) stream from your camera when maximised in the live viewer.
  • VLC Options: These options get passed into VLC when it connects to your camera.

FFMPEG Settings:

These are general FFMPEG settings so you can tweak how Agent connects to your cameras. Access this via Edit Camera, General tab, click to configure the video source and select FFMPEG in the drop-down menu.

  • Buffer: This is the realtime buffer that FFMPEG uses to store and process video. A smaller buffer means more real-time video but higher chances of errors. Recommended setting is 2000kb but you may need more for high resolution streams.
  • RTSP Mode: Auto will let FFMPEG choose the transport. If you have lots of errors try setting this to TCP. If you have a good wired connection use UDP as it has less processing overhead than TCP.
  • Scale Mode: Choose a scale mode for FFMPEG - Fast Bilinear is the default.
  • Find Best Stream: Check this to let FFMPEG decide which is the best video and audio streams to use from the connection
  • Video Stream Index: Uncheck "Find Best Stream" and you can manually set the video stream index here if FFMPEG isn't using the stream you want.
  • Audio Stream Index: Uncheck "Find Best Stream" and you can manually set the audio stream index here if FFMPEG isn't using the stream you want.
  • Prefer TCP: Check this option and FFMPEG will always prefer to use TCP if possible to connect to your camera - TCP provides error correction so you are less likely to get video decoding issues at the expense of some CPU usage and higher network traffic.
  • Analyse Duration: How long FFMPEG should spend analysing the streams to decide on Codecs and which streams are the best ones. 0 = automatic.
  • Maximum Delay: This applies to rtsp and rtmp streams and controls how long FFMPEG will delay playback if packets are received out of order. Higher values means less chance of errors but potentially higher latency. 0 = automatic. If this is set to 0 then Reorder Queue Size will be ignored. (sets max_delay on the ffmpeg format context)
  • Reorder Queue Size: The number of data packets to store in memory. Higher values mean less chance of corrupted streams but higher memory usage. (sets reorder_queue_size on the ffmpeg format context)
  • Thread Count: The number of threads to use to decode the stream. 0 = automatic. Less threads can reduce lag. (sets thread_count on the ffmpeg video context)
  • Options: Any additional FFMPEG options you want to pass in.

FFMPEG Troubleshooting:

If you are experiencing corrupted video in the live or recorded view this is usually because of packet loss on the network resulting in decode failing in FFMPEG.
Check for sources of electrical interference like microwaves or washing machines. A wired network will provide better video data than a wireless network.
In FFMPEG Settings You can try setting the RTSP mode to UDP and uncheck Prefer TCP. You can also experiment with setting the maximum delay and reorder queue size values Failing that you can install VLC and set the decoder on the general tab to VLC instead of FFMPEG.