The Milestone AI Bridge is a cloud native SDK that allows you to easily extend your already containerized application to integrate with the XProtect VMS from Milestone Systems.
Version 1.7 is now available on NGC (https://catalog.ngc.nvidia.com/ ). If you don’t already have access, then please reach out to Martina Vasileva Linkova (MaLi@milestone.dk).
Release notes
- 1.7.0 (25th of May 2023)
- Switch from deprecated NPM package express-graphql to the latest graphql-yoga in the Milestone AI Bridge Webservice container.
- The Milestone AI Bridge Fuseki container now uses Jena Fuseki version 4.7.0 (previously 4.4.0).
- The register.graphql file has three new parameters: ‘version’, ‘manufacturer.id’, and ‘manufacturer.name’. IVA manufacturers can use the parameters to register their companies on the Milestone Installed Integrations Insights platform, like shown in this sample snippet from the app register mutation:
{
id: "- the guid of your analytics app -"
name: "Sample video analytics app"
version: "1.0"
manufacturer: {
id: "- a guid you use as a manufacturer -"
name: "Sample Manufacturer"
}
...
-
Please send a mail with the manufacturer name you use, to partner@milestone.dk as described in https://developer.milestonesys.com/s/feed/0D53X00009lOtp6SAC, in order to be able to get Insights about where your Integrations are Installed.
-
1.6.0 (28th of March 2023)
- New ‘MASTER_KEY’ macro in the docker-compose.yml file and masterKey parameter in the helm chart values.yaml file for encryption of the XProtect basic user credentials you define in Milestone AI Bridge for logging into the XProtect VMS.
- New ‘enforce-oauth’ parameter in the Milestone AI Bridge Streaming container added for improved compliance with defined user permissions in XProtect VMS.
- Fixed imperfections in video codec parsing for all devices. The problem was first seen in connection with Bosch cameras.
- Fixed that the IVA app web page constantly ran in the Milestone XProtect Processing Server Admin Plugin. Now the Microsoft Edge WebView2 threads are closed when not needed.
- Fixed two leaks related to snapshot requests:
- A connection leak to Recording Server in the Milestone AI Bridge Connector container.
- A memory leak in the Milestone AI Bridge Web Service container.
- Fixed increasing memory consumption in the Milestone AI Bridge Fuseki container.
- Milestone AI Bridge is now fetching the configuration of a VMS installation up to 8 times faster.
- New zone field added. Use it to ensure the best performance in large VMS installations with hundreds of recording servers and multiple processing servers.
-
1.5 (5th of January 2023)
- Access to video using WebRTC and Snapshots can now be authorized using an OAuth token. Such an OAuth token will be provided by the Processing Sever plug-in for the XProtect Management Client when loading a webpage. Access to video can thus be authorized using the credentials of the user by which you are logged into the Management Client.
- Bumped up version of third party libraries; now using graphql-ws instead of depreciated subscriptions-transport-ws module.
- Now registration and unregistration of Apps, Config maps and Licensors and be done individually.
- Added support for querying details about registered Video Management Systems.
- Fixed ‘docker-compose-production.yml’ file to not expose unnecessary ports.
- Added support for config maps. This will allow for both updating and querying key-value pairs in a database managed by the VMS.
- Introduced new plug-in interface for transcoding WebRTC video. This will allow any JPEG, H.264 and H265 video stream to be rendered in Chrome, Edge, Firefox and Safari. Implemented one such plug-in that can transcode video using the NVIDIA Video Codec SDK.
- Added support for a webpage to be associated with a Processing Server in XProtect.
- Video and metadata subscriptions (devices) will no longer reconnect every minute due to inactivity; also fixed resource leak when a reconnect happens in general.
- Improved logs from connector service with more details when the connection to XProtect is lost.
- Optimized synchronization of configuration data with XProtect when having devices with many specialized setting groups.
-
1.4 (11th of August 2022)
- AI Bridge now works with all versions of XProtect and not only Corporate and Expert
- All images of AI Bridge are now multi-architecture images with support for both X86 and ARM (tested to work on NVIDIA Jetson AGX Xavier / Orion)
- Introduces a new scope parameter that allows you to limit the exposed cameras and microphones to those of a user defined device group in XProtect (e.g. to reduce resource consumption).
- Now using the Confluent Community Docker Images for Apache Kafka (the images from wurstmeister did not support ARM)
- Added ingress-nginx as a dependency to the Helm Chart
- Now explicitly mapping RTP ports in compose files to avoid being assigned random ports (needed for AWS Panorama device to connect)
- Fixed issue causing video connection to XProtect to be forcibly closed when security token expired (could potentially happen once every 4th hour)
- Updated to use latest version of gortsplib library (fixes for RTSP streaming).
-
1.3 (21st of June 2022)
- Added support for only receiving video from XProtect if motion is detected. Filtering is supported for both RTSP and Direct Streaming (gRPC).
- Fixed bug that in rare cases could cause the connector container to become unresponsive when reconnecting after a network error.
-
1.2 (31st of May 2022)
- Added support for getting video using the WebRTC protocol (only H.264 for now).
- Added support for licensing an integration using the Milestone Licensing Server.
- Added support for filtering by name when querying for cameras, microphones, camera groups and microphone groups.
- Optimized synchronization of configuration data with XProtect when having many disabled cameras.
- Improved log messages to reveal more details when the connection to XProtect fails.
- Refactoring of Processing Server Plug-in fixing several minor issues. Settings are now stored in a different way and after upgrading you might need to re-subscribe to topics.
- For compose deployments, two new environment variables named respectively EXTERNAL_IP and EXTERNAL_HOSTNAME have replaced the old HOSTNAME environment variable.
- On slow machines, the init container would in some cases not complete; this was due to a Kafka consumer in the webservice container not retrying long enough for the group coordinator to become available.
-
1.1 (23rd of March 2022)
- When deploying the AI Bridge using the Helm Chart, the XProtect credentials now must be provided using a Kubernetes Secret and not through environment variables.
- When deploying the AI Bridge using the Helm Chart and using TLS, the VMS CA certificate must now be provided using a Kubernetes ConfigMap. Also, the issued server certificate and its associated private key must be provided using a Kubernetes Secret.
- Added support for new metadata format ONVIF_ANALYTICS_FRAME as a sub format of ONVIF_ANALYTICS where the root node of the XML document is a ‘Frame’ node.
- Now any object type can be used with the DEEPSTREAM_MINIMAL metadata format. Before, any object that did not have object type Vehicle, Person or Bicycle would be ignored.
- Improved log messages of the proxy container when sending metadata and video frames to XProtect. Instead of having one log message for every frame, now only sending the first frame is logged. A follow-up log message will be made if it has been more than 10 seconds since a frame was last sent.
- A label used for debugging was mistakenly shown in the Plug-in for Management Client and has now been removed.
- A bug has been fixed in the Management Client plug-in, which in some cases could cause subscription of metadata and video topics to fail.
-
1.0 (8th of March 2022)
- First official release in the NGC Catalog
Technical support
If you are seeking technical support, visit the Milestone AI Bridge topic on the Milestone Developer Forum. Here you can ask questions, help your peers and discuss relevant topics.