Categories
Knowledge Support Support exacqVision Server Categories Products

ONVIF PTZ camera with two streams may display as two different cameras even if “Manage all streams as quality” is checked

Product

exacqVision Server 6.2 to 7.2.3

<br>

Symptom

ONVIF PTZ camera with two streams may display as two different cameras even if “Manage all streams as quality” is checked. This is because the XML is reporting the secondary context as being an independent PTZ which is something generally used for fisheyes where PTZing one stream doesn’t PTZ the other streams.

<br>

Workaround

No workaround

<br>

Resolution

Update exacqVision Server to 7.4.0

<br>

Categories
Knowledge Support Support Categories Products exacqVision Integrations

Onvif mis-handle partial socket receive and could cause delay in connection

Description

This bug caused the Onvif configuration failed to handle a complete soap message when they are partially send. The end result is that there would be a long delay before the camera would be “connected”

<br>

Version Introduced

r34959 (dev build 5_1_9_34964)

<br>

Platform

All

<br>

Steps to reproduce

Use the Hitachi DI-CB320G(F8-48-97-9E-76-9E 10.16.11.47:8080 root/admin) for testing.

connect the camera with Onvif plugin.

<br>

Expected result

Camera connected with minimum delay.

<br>

Actual result

Camera in “connecting” state for long time(could be 10-20 minutes) and finally connected.

<br>

Work Around

none

<br>

Version Fixed

r103397 (dev build 8.1.8.103450)

<br>

Keywords

Onvif

Categories
Knowledge Support Support exacqVision Server Categories Products

Onvif with incorrect profile parameter in host name would crash server

Description

Onvif plugin does allow additional parameters in the host name for added supports. Such as profile/tranport settings(#Profile=1 or #transport=udp). Profile expects a number but would crash the server if a string is entered.

<br>

Version Introduced

r38461

<br>

Platform

All

<br>

Steps to reproduce

connect onvif camera with host name and profile with string.

example: 10.16.1.1#profile=test

<br>

Expected result

string in profile is ignored and defaulted to the first profile.

server does not crash.

<br>

Actual result

server crashes with invalid string entry.

<br>

Work Around

remove profile entry or reconnect with valid profile number.

<br>

Version Fixed

r103382 dev build 8.1.8.103450

<br>

Keywords

Onvif

Categories
Knowledge Support Support exacqVision Server Categories Products

ONVIF Plug-in Crash with Invalid First Video Profile

In rare cases, a camera’s firmware might not provide valid video as the first profile, causing the ONVIF plug-in to crash and producing a log message of “profile 0 missing video encoder configuration.” This was specifically observed with an APAC camera running version 1.1 firmware. This could affect exacqVision Server 6.2.x and later.

<br>

As a workaround, specify a valid profile with the IP hostname:

10.16.10.224#profile=1
10.16.10.224#profile=2

Categories
Knowledge Support Support exacqVision Server Categories Products

ONVIF plugin memory leak: Motion and alarm events received via metadata streaming could cause crash

Affected platforms

exacqVision 5.4 or later

<br>

Symptom

When certain cameras are connected using the ONVIF plugin and the plugin is configured to use metadata streaming to receive motion and alarm events, a memory leak is possible. If memory usage increases enough exacqVision can crash. The crash is typically in ntdll which show a heap memory issue.

To validate this issue is the root cause of a crash, stop the Onvif plugin from requesting a metadata stream as described in the workaround.

<br>

Workaround

Edit the /exacqVision/server/onvifnvcpi.json file to remove the manufacturer’s entry. This will result in the loss of motion-based recording, so modify the recording schedule to use free run recording.

<br>

Resolution

No fix at this time.

Categories
Knowledge Support Support exacqVision Server Categories Products

ONVIF camera streams may repeatedly cycle stream connection

Issue

Starting with exacqVision Server 9.3.21, some ONVIF cameras may repeatedly disconnect and reconnect, which causes gaps in video recording. The following log message repeating pattern may also be observed:

27/02/2020 00:00:27     onvifnvcPI     Verbose     172.28.140.17: Context 017 HQ Office R&D. Media open but data timed out. Close and retry

27/02/2020 00:00:27     onvifnvcPI     Verbose     172.28.140.17: 017 HQ Office R&D Context 0 Connection status changed to 0

27/02/2020 00:00:27     onvifnvcPI     Warning     172.28.140.17: Context 017 HQ Office R&D. Stream closing

27/02/2020 00:00:27     onvifnvcPI     Verbose     172.28.140.17: Context 017 HQ Office R&D. Ok to begin playback

27/02/2020 00:00:27     onvifnvcPI     Verbose     Opening 017 HQ Office R&D. RTSP Uri path: rtsp://172.28.140.17:554/main

27/02/2020 00:00:37     onvifnvcPI     Verbose     172.28.140.17: Context 017 HQ Office R&D. Media open but data timed out. Close and retry

27/02/2020 00:00:37     onvifnvcPI     Warning     172.28.140.17: Context 017 HQ Office R&D. Stream closing

This issue was introduced when the RTSP streaming implementation was changed in the ONVIF plugin.

<br>

Workaround

Downgrade to latest 9.2.x version or upgrade to exacqVision Server 20.03.6 (and dev build 20.03.110)

Resolution

Fixed with exacqVision Server 20.03.6 (and dev build 20.03.110)

<br>

Version Affected

Starting with exacqVision Server 9.3.21

<br>

Version Fixed

exacqVision Server 20.03.6 (and dev build 20.03.110).

Categories
Knowledge Support Support exacqVision Server Categories Products

ONVIF Cameras May Stop Recording Motion

Issue

 Some ONVIF cameras report motion by means of a “pull-point” connection separate from the streaming video connection. If the camera unexpectedly closes the motion status connection, the server will retry the connection in order to reacquire motion status. When this happens, the corresponding server log messages will resemble:
4/27/2020 02:59:38.464 AM     onvifnvcPI     Error     http://172.19.232.75:80/onvif/subscribe_service: pull point socket exception.4/27/2020 02:59:38.464 AM     onvifnvcPI     Verbose     http://172.19.232.75:80/onvif/subscribe_service: Timeout triggered.4/27/2020 02:59:38.464 AM     onvifnvcPI     Verbose     http://172.19.232.75:80/onvif/subscribe_service: Pull point is now UNINITIALIZED4/27/2020 02:59:38.464 AM     onvifnvcPI     Verbose     172.19.232.75: Pull point needs to be initialized
When we finally abandon retries, we omit the “Pull point needs to be initialized” log message.
However, if a camera repeatedly closes the motion status connection due to firmware defects or other unknown issues, this can cause excessive server log error messages. In exacqVision Server 5.4.0, this retry behavior was limited to 6 attempts, in order to reduce logging.
Unfortunately, some ONVIF cameras are known to periodically timeout the motion connection, with the expectation that servers should periodically re-establish a “fresh” motion status connection. In such case, the server appears to show live video but no motion flag, and in turn, motion recording will cease.
Depending on the particular ONVIF camera, this symptom can occur after minutes, hours, or longer.

<br>

Workaround

Use continuous recording or upgrade. 

<br>

Resolution

Fixed in exacqVision Server version 20.03.119

<br>

Version Affected

exacqVision Server lower than 20.03.119

<br>

Version Fixed

exacqVision Server 20.03.119

<br>

Categories
Knowledge Support Support exacqVision Server Categories Products

Onvif plugin now supports camera timestamping

The Onvif plugin has always time-stamped frames as they arrive at the server. With issues of network latency and camera streaming problems, this could cause video to look jittery. An option was added to provide time-stamping with camera time. Adding #timestamp=camera in the hostname would use the presentation time provided by the camera. The default will still time-stamp frames at the server.

<br>

Supported started with dev build 8.3.28.109905.

Categories
Knowledge Support Support exacqVision Server Categories

IP Plugin Overrides

The standard form for exacqVision camera addresses is as follows:

{host}{?parameter_1=value_1}…{?parameter_n=value_n}{#override_1=value_1}…{#override_n=value_n}

  • The host is required and must be in the format of an IPv4 address or FQDN (dot separated domain location).
  • The 1 or more name=value parameters are separated by ? and are optional. These are passed to the device.
  • The 1 or more name=value overrides are separated by # marks and are optional, but always last. These are passed to the plugin to modify plugin behavior.

<br><br>

Overrides

PluginOptionUsage
ACTitransport=httpHTTP stream support for legacy platforms and user data
ACTitransport=rtspRTSP stream with separate metadata socket for motion/input trigger/video loss/etc.
Axiszoom=configBy default zoom only cameras support.
Axiszoom=operationForce zoom only operation and controls as part of PTZ and live view.
Axisblocksize=offOn by default, but could turn off blocksize in the RTSP session for some cameras with streaming issues.
Axistransport= {udp,tcp,rtsph,rtsphs}Transport overrides for use with Secure Streaming
Axistunnelport={1025-65535}Override for tunnel port when not the same as CGI port. Use as a workaround for only having 1 port input box/XML attribute.
Axistimestamp={server,trusted}Override timestamp to server time(server) for problem cameras or to camera adjusted by RTSP/RTCP per RFC(trusted)
Arecontnone
Dahuatransport= {udp,tcp,rtsph}Transport overrides for use with Secure Streaming
Dahuatimestamp = serverStamp with server time.
Dahuatimezone=cameraAllow camera to retain timezone when connected to exacq (do not push GMT as we normally do).
Dahuatimezone=utcpush GMT to device, this is also default if not provided.
Hikvisiontimestamp=rtpForce to camera timestamp without waiting for RTCP sync.
Hikvisiontransport={tcp,udp,rtsph,rtsphs}Transport overrides for use with Secure Streaming
Hikvisiongetparameter_override=trueNeeded for HQHI-SATA encoder to prevent stream interruption.
Hikvisionosd_override=offAllow camera time OSD to be displayed (when enabled on camera)
Hikvisiontimezone=cameraAllow camera to retain timezone when connected to exacq (do not push GMT as we normally do).
Hikvisiontimezone=serverPush GMT timezone to camera (because Illustra standard does NOT do this as default)
Hikvision1 timestamp=serverStamp with server time.
Hikvision1 timestamp=rtcpStamp with server time until sync with RTCP server report.
Hikvision1 support=legacySupport original CGI interface.
Hikvision1 support=isapiSupport ISAPI interface.
Illustra3transport=udpStream RTSP session with UDP protocol.
Illustra3zoom=operationForce zoom only operation and controls as part of PTZ and live view.
IllustraFlexnone
Illustranone
Ioimagenone
Ipxnone
IQEyenone
Onviftransport=udp1 TCP socket for RTSP and up to 6 UDP sockets for video, audio, and application data and their RTCP streams.
Onviftransport=rtsp1 TCP socket for RTSP with all other streams interleaved in it.
Onviftransport=httpDefault 2 TCP sockets for RTSP over HTTP over TCP. ( 1 long POST and 1 long GET )
OnvifProfile=xConnect to a specific profile number.
Onvifnat=1Support nNAT translation to WAN address.
Onviftimestamp=serverStamp with server time.
Onvifbank=xSelect 4 channel encoder banks.
Onvifhttp=1.0For Samsung SPE-100/400 that requires http1.0 for live555.
Onvifsupport=profile-sForce Profile-S implementation for cameras that do not fully support Profile-T.
Onvifevents=pull or streamSelect metadata event mode when the manufacturer option is ALL.
Onvifuse_caps={on,off}Use deprecated GetCapabilities for when GetServices is poorly implemented.
Onviftunnel_alive = auto,get_parameter,set_parameter,options,noneKeep alive mechanism during RTPS-over-HTTP, defaults to auto.
Panasonictransport=udpStream RTSP session with UDP protocol.
Panasonictimestamp=serverStamp with server time.
Pelcotransport=udpStream RTSP session with UDP protocol.
RTSPtransport=udpStream RTSP session with UDP protocol.
RTSPtransport={tcp,udp,rtsp,rtsph,rtsphs}All Transport overrides.
RTSPtimestamp=serverStamp with server time.
RTSPtimestamp=rtcpStamp with server time until sync with RTCP server report.
RTSPtimestamp=trustedStamp with cameras time adjusted by RTSP/RTCP per RFC.
RTSPstream=xSelect specific stream number.
RTSPtrack=xSelect specific track number.
RTSPtunnelport={1025-65535}Tunneling port replacing the :portnum on URL.
RTSPembed_port=*Forced RTSP URL format in tunnel.
RTSPhttp=1.0,1.1Forced RTSP URL version number.
RTSPbc_audio=supportedBackchannel audio out.
RTSPbc_samplerate=xxxxBackchannel sampling rate.
RTSPbc_samplesize=xxxxBackchannel sampling size.
RTSPbc_mode=tsBackchannel timestamp mode(duration(default)/timestamp using RTCP adjustment).
Samsungtransport={tcp,udp,rtsp,rtsph,rtsphs}Transport overrides for use with Secure Streaming
Samsungtunnelport={1025-65535}Tunneling port if different than one used for CGI.
Samsunghttp=1.0,1.1Fix for some older devices.
Samsungembed_port=*Fix Internal URL inside tunnel if needed.
Sanyonone
Sonytimestamp=serverStamp with server time.
StarDotnone
UDPnone
Vivoteksupport=legacyUse legacy API and support.
Vivoteksupport=onefwUse OneFW API and live555 stream.

1 The use of these overrides requires the use of IPv4 dotted address, FQDNs cannot be used.
<br><br>

Override Definitions

OverrideDescription
transportStream session with the specified protocol { TCP | UDP }.
timestampStamp frames with server or camera time.
timezone{ UTC | camera | server } Determine if camera timezone is set to UTC+0, left as camera or set to that of server.
zoomOverride configuration or operation zoom function.
blocksizeOn by default, but could turn off blocksize in the RTSP session for some cameras with streaming issues.
profileConnect to profile number N; N is a number from 1 to the number of profiles supported by the camera.
natSupport NAT translation to WAN address.
bankSelect 4 channel encoder banks. N is 1 – number of banks, usually in set { 1 | 2 | 3 | 4}.
supportOverride support API. For example, used by Vivotek to support either legacy or oneFw.
streamSelect a specific stream ID for devices supporting multiple streams.
trackSelect a specific track for devices supporting multiple media tracks.
tunnelportWorkaround for our XML and GUI only giving us one box for port. Used if tunnel port is different than CGI and does not come from CGI.
embed_portValue does not matter. Forces RTSP URL inside tunnel to put port in the URI if it is default. A small selection of cameras need ip:554 even when in a tunnel over 80

<br>

Categories
Knowledge Support Support Categories Products exacqVision Hardware

Are All ONVIF-conformant Cameras Compatible with ExacqVision Systems?

The streaming profile of ONVIF (Profile S) provides a standard interface for streaming video and audio between conformant devices (cameras or encoders) and clients (VMS). The ExacqVision VMS is listed as an ONVIF Profile S-conformant client.

Extensive testing with a wide variety of ONVIF Profile S-conformant cameras has revealed enough inconsistency that Exacq does not explicitly declare support for all Profile S cameras for use with ExacqVision. Only the IP cameras listed in the Exacq IP Camera Integration database are officially compatible and supported for use with ExacqVision. Cameras not listed in the camera database should not be considered compatible with ExacqVision, even if they are Profile S-conformant.

If you are interested in using an ONVIF Profile S-conformant camera that is not listed in our camera database, please submit an integration request on the IP camera integration web page by clicking “Can’t Find Camera?”

<br>