ONVIF Protocol Requirements
Summary of Requirements:
In order for an ONVIF camera to be compatible with TimeZero, it needs to follow the below requirements:
- The camera must support the mandatory features of the ONVIF Profile S protocol (see ONVIF Profile S specification) over HTTP (HTTPS not supported)
- The camera must support video streaming in H264 (TimeZero is not compatible with MJPEG, MPEG4, or H265)
In addition, for a PTZ Camera:
- The camera must support continuous Move and Stop PTZ operations (pan/tilt/zoom command by speed with stop command)
- The camera must support absolute positioning (used by TimeZero when controlling the camera from the chart to move or lock on targets)
- The camera must support relative positioning (used by TimeZero when using the virtual joystick button)
- The camera must be able to provide position feedback (Pan Position, Tilt Position, Zoom Position)
- Optional: The camera can support Auxiliary Commands
- For Dual Head Cameras that have a daylight lens (Visible) and a nighttime lens (IR), the video stream linked to the Visible and IR lens must implement a PTZ Configuration with independent "token". These tokens should be link to two independent PTZ nodes that would allow TimeZero to control independently the visible and IR zoom lens and get their proper zoom position (to be able to compute the Field of View for both the visible and IR lens).
ONVIF Camera Validation in TimeZero:
Although the ONVIF Profile S specification is very detailed, some manufacturers may not follow the specification closely causing unexpected behavior in TimeZero. The steps below will help you making sure that the camera is properly setup in TimeZero and conforms to the ONVIF specification.
Pan & Tilt Coordinate Space
The default ONVIF Pan and Tilt coordinate space is normalized to the range -1/+1. For Pan position, "0" is the front of the camera, "+1" is +180 degrees (right side), and "-1" is -180 degrees (left side). For Tilt position, "0" is the horizon, "+1" tilt up the camera to its maximum angle, and "-1" tilt down the camera to its minimum angle. A camera that does not use the normalized coordinate space should automatically provide its custom coordinate space to TimeZero (during the initial detection), but sometimes, this fails. That is why it is recommended to manually pan and tilt the camera to its maximum PTZ positions and write down the raw ONVIF values that get returned by the camera. Follow the instructions below:
- Select the Camera WorkSpace in TimeZero
- Click on the "Camera Control" button located in the Ribbon, enable "Camera Info" and look for the Raw Pan, Tilt, and Zoom values:
- Manually Pan the camera around 360 degrees and make sure the raw pan position value goes from -1 to +1, performing a full rotation (with 0 being the front of the camera)
- Manually Tilt the camera all the way up and make sure that the raw Tilt position is +1. If the sign is reversed, or if the maximum tilt value is different (0.5 for example), make sure to write down this information. Also write down the maximum physical angle in degrees by observing the camera or by looking at its datasheet (for example 90 degrees).
- Repeat the same procedure by Tilting down the camera to its minimum value.
- Open the Camera Options, double click on the camera in the list, and click on the "ONVIF Configuration" button. Make sure the values below match what you have written down:
Field of View and Zoom Coordinate Space
TimeZero needs to know the maximum (wide) and minimum (tele) horizontal field of view of the camera. This information can be found in the camera datasheet and should be setup in the Camera Options under Horizontal Field of View:
The default ONVIF zoom coordinate space is normalized from 0 (wide) to +1 (tele). It is recommended to zoom the camera to its minimum and maximum and write down the raw ONVIF values using the same procedure as for the Pan & Tilt Coordinate space. Then, make sure that the minimum and maximum values match what you have written down:
Relative PTZ Step Interval
When using the virtual joystick buttons (quick press on the up/down/right/left arrows located at the bottom right corner of the camera screen), TimeZero will move the camera in the corresponding direction using a relative command. The relative step angle sent to the camera is set by default to half the current field of view of the camera (50%). You can change this default value by adjusting the "Pan/Tilt FOV Step" setting.
IMPORTANT: If you notice that the camera Tilt commands are reversed when pressing the up/down arrow, set the "Invert Tilt Axis" to True.
PTZ Continuous Move Speed
When using a physical joystick with TimeZero, or when clicking and dragging on the camera display with the cursor, TimeZero will control the camera using speed commands. If you feel that the control speed is too fast, you can reduce the "Pan/Tilt Maximum Value".
Proportional Speed Control
When the camera is zoomed in, you want the Pan/Tilt speed to be slower than when the camera is zoomed out. Most cameras should adapt the Pan/Tilt speed according to the zoom factor. If you feel that the camera does not implement this feature (and if the pan/tilt zoom is too fast when the camera is zoomed in), you may enable the "TZ Proportional Speed Control" setting in TimeZero. When this setting is enabled, the more you are zoomed in, the slower the Pan/Tilt speed will be.
Dual Head Configuration
When TimeZero detects multiple video stream, a "Dual Head" checkbox will appear in the main camera configuration window. In order for TimeZero to independently control the Visible and Infra-Red lens (zoom), the camera must implement two ONVIF PTZ nodes that must be linked to the Video Stream via a "token". When TimeZero detects two PTZ Nodes, new settings for the IR Field of View will be available in the main configuration window: