Introduction
Connecting an ONVIF Profile M connection from a camera through the EdgeVis pipeline to Milestone contains a number of steps that use different technologies, but understanding the basics can make the process smoother. ONVIF (Open Network Video Interface Forum) Profile M is designed for metadata streaming and event handling, making it essential for integrating various devices and systems in a surveillance setup. When connecting to Milestone, a leading video management system (VMS), issues can arise due to software configuration. This guide will walk you through common verification steps and possible solutions, ensuring seamless integration and optimal performance of your surveillance system.
Prerequisites
These instructions assume that you have the following:
A working EdgeVis system including an EdgeVis encoder connected to a working EdgeVis Server, which itself is connected to a VMS Gateway on the same network as your Milestone VMS.
You will need to know the following for the EdgeVis encoder:
The encoder interface that connects to the network where the camera is visible.
You need to know the following for an installed and working ONVIF IP camera that has built-in analytics that are enabled:
IP address
Username
Password
Overview
First we'll show the steps involved in connecting a camera that supports analytics metadata to an EdgeVis encoder, followed by adding the resulting encoder stream into VMS Gateway and then outlining the steps to add it into Milestone. At this point we'll discuss what you can check to make sure it's all working effectively.
Connecting a camera that supports analytics metadata to an EdgeVis encoder
Here you will connect the camera to the EdgeVis encoder and then set up an EdgeVis compressed output stream from the encoder to the EdgeVis Server.
Connect the camera to the encoder
Log onto the web interface for your EdgeVis encoder.
Click on the Video inputs panel under the CONNECTED DEVICES heading.
On the Video inputs page, which shows the currently connected cameras and lets you add video inputs and change the video layout, click on the Add video input button.
On the Add video channel page, you can click Search add local network to search for your local cameras, but in this example we'll use the Add manually button to show the full process.
On the Add camera page:
Select the Interface that connects to a network where the camera is visible. In our example this is the primary LAN 1 interface.
Leave the Feed type as ONVIF.
Set the IP address for the IP camera. In our example this is 192.168.0.70.
Set the Friendly name for the camera. In our example we set this to the model name for the camera, in this case HanwhaVision, but this could be set to anything that lets you identify the camera effectively.
Next set the Username and Password for accessing the camera.
Once all the parameters have been set click the Next button to continue.
At this point the EdgeVis encoder will attempt to connect to the camera using the information you provided and the message Adding video input... is displayed.
Once connection has been made, the Video inputs page will be shown with the new video feed shown, initially in blue before the video stream has been established.
When the video stream is shown click the panel to display the video information page, showing information about the camera like the Model, IP address, Port etc.
Scroll down and you should be able to see the Average analytics bitrate showing a value greater than zero to indicate the analytics are being transmitted from the camera.
(Optional) Allow ONVIF Profile M imagery within the metadata
By default, EdgeVis will strip out any JPEG images within the ONVIF Profile M data stream. This is due to the potentially unpredictable and excessive data sizes which could have reliability and cost implications.
If your use case requires these images to be sent, it is possible to re-enable these images, and if the bandwidth usage is too high, allow the encoder to reduce them to a lower quality.
If you are enabling images please perform a bandwidth check of your configured system using our bandwidth setting guidance before deploying your equipment in a production environment.
To enable imagery:
Select the Change Event/Metadata settings option on the right of the camera details page:
On the resultant dialog, there is the option to set the Quality of images generated for metadata events. By default this is Off:
You can select Original to transfer the image as supplied from the camera or select a lower quality setting (between 25-75%) where the encoder will recode the image to attempt to save bandwidth at the expense of quality.
Adding the encoder stream to VMS Gateway
Here you will add the EdgeVis encoder output stream to VMS Gateway and create a Virtual ONVIF Device (VOD) with its own IP address, that will allow that stream to be picked up by Milestone XProtect as if it were a hardware device streaming ONVIF Profile S and Profile M data.
Log onto VMS Gateway to view the dashboard page. In our example, a VOD has already been created with the IP address 10.152.0.20, but we're going to create a new one. Click on the Virtual ONVIF device link.
On the Add Virtual ONVIF device page enter the last octet for an IP address that will be used for the device. The first three octets of the address are the same as the IP address for the VMS Gateway. In our example we use 30 as the last octet, which results in an IP address of 10.152.0.30. You should ensure that the IP address is unique to the subnet. Click the Add button.
You will be asked if you want to Add streams now?, click Yes to continue where you will add the previously configured output stream from the encoder.
The Add output streams page shows all of the output streams, corresponding to EdgeVis encoders, available from the connected EdgeVis Server. To select a stream for adding, click on the plus sign at the right-hand end of its entry on the page -
in our example we select the HanwhaVisCam stream configured earlier - then click on the Add button at the bottom of the page.
A page for the new VOD called Virtual ONVIF device: <IP address> is displayed, in our example the IP address is 10.152.0.30. You'll see the output stream name and a notification of the stream status. To begin with it will read as This output stream is initializing, but once initialization has finished this will change to Ready to transmit.
Click on the Back to dashboard link at the top-left of the page, you should now see the new VOD. In our example this is the 10.152.0.30 VOD displayed below the previous 10.152.0.20 VOD.
The VOD has been created, but before leaving the VMS Gateway, click on the ONVIF/RTSP credentials link to display a popup showing the Username and Password that can be used to access any of the VOD in this cluster. The root Username is easy to remember, so it's a good idea to copy the Password by clicking the Copy button next to that entry, it flashes to green and shows that it's been Copied!.
You've now created a new VOD that is available for access from your Milestone XProtect VMS.
Adding the VMS Gateway stream as new hardware in Milestone XProtect
Here you will add the newly created VOD to your Milestone XProtect system using its IP address, Username and Password. We're going to cover this fairly quickly and stop at the point that the VOD is connected, if you want to see a more extensive example that adds a camera with Object Detector enabled on the EdgeVis encoder, please refer to Viewing ONVIF profile M metadata in Milestone XProtect.
Log onto the machine where your Milestone XProtect system is hosted as a Milestone XProtect administrator. To help in our example, we've created a text file that contains the VOD info on our Milestone XProtect server, copied the password and have opened the Milestone XProtect Management Client.
Select the Recording Servers node on the left-hand side navigation tree, then click on your recording server. In our example this shows a camera stream from a VOD we added previously.
Click on the Action->Add Hardware... menu item to open the Add Hardware wizard. In the wizard, on each of the following steps click Next to continue:
Click on the Manual option on the Add Hardware page.
On the credentials page, enter the user credentials for the newly created VOD, as noted earlier, by clicking on the Add button and entering the User name and Password.
On the drivers page ensure that the ONVIF driver is selected.
On the network address page enter the IP address for the newly created VOD.
The hardware detection page will scan the IP address entered on the previous page and show a status of Success when the VOD has been found.
The next page of the wizard connects to the newly discovered VOD to collect information with the user credentials entered earlier.
The page after shows all of the information from the VOD allowing you to select the parts to bring into Milestone XProtect. By default the Hardware and Camera port are selected, you need to additionally select the Metadata port.
The final page lets you select the Milestone XProtect groups to add the data to. In our example we use the default groups and click Finish to close the Add Hardware... wizard.
Now confirm that the connection is working:
At this point, with your Recording Server selected, you should see the video stream from the connected camera.
Now click on the Devices->Metadata node in the navigation tree on the left-hand side of the interface.
Expand the Metadata folder in the Devices panel and click on the metadata for the newly added VOD.
If the metadata is being received you'll see an animated icon like the following:
If the metadata is not being received you'll see a static icon like the following:
At this point, if the metadata is being received you can scroll down in the navigation tree and navigate to the Metadata Use->Metadata Search and select the Search Categories in the Metadata Search panel relevant to the video hardware you are connecting.
Milestone XProtect has now been configured to receive information from your VOD. After this, you can use the Milestone XProtect Smart Client to add views for the newly added VOD, in the same way you would for any other type of camera. For an example of adding a Milestone XProtect view for a VOD using the EdgeVis encoder Object Detector please refer to Viewing ONVIF profile M metadata in Milestone XProtect.
If the metadata is not being received you'll need to perform some troubleshooting steps to see where the issue lies - ZAP.
Configuration Advice
EdgeVis Analytics
When you want to use the analytics that come directly from an IP camera and pass those through to your VMS, you should ensure that the EdgeVis encoder analytics are turned off. This avoids any potential clash between the analytics being displayed from the two sources.
Configuring bandwidth usage
The level for setting the bandwidth on the encoder is dependent the type and quality of the connection, your equipment and your requirements for data and video quality. A general process for setting the bandwidth is:
Using the EdgeVis Client open the EdgeVis encoder stream, set the the EdgeVis encoder bandwidth to high for the connection type.
On the EdgeVis encoder web interface scroll down to the ADVANCED SETTINGS heading and click on Outgoing bandwidth statistics.
This displays the Outgoing bandwidth statistics page, initially this shows the combined settings for all the streams from the EdgeVis encoder.
Filter the data to show the statistics for the data stream you are interested in.
Now under the MAXIMUMS heading check the Maximum values for the last 15 minutes, this gives you a rough guide to the peak amount of Analytics metadata being sent by the encoder for this video stream.
The value that you set for the maximum bandwidth should definitely not be set lower than the Analytics maximum and you must then add an additional amount to allow for the video and audio - refer to the streaming performance guidelines for further guidance.
Setting your camera clock to use NTP
To synchronize your camera with EdgeVis and your VMS and make sure that any metadata is accurately timed to the video source you need to ensure that NTP is configured on your camera. If your camera does not have internet access you can configure the EdgeVis encoder to act as an NTP server and use that instead. For more instructions on configuring your EdgeVis encoder in this way, please refer to Setting up an NTP Service.