BriefCam v6.2 Next-Gen Engine
BriefCam v6.2 Next-Gen Engine
BriefCam®
Next-Gen Video Analytics Engine
February 2022
TRANSFORMING VIDEO SURVEILLANCE
INTO ACTIONABLE INTELLIGENCE
Contents
Introduction........................................................................................................................ 3
Benefits ............................................................................................................................. 3
Configuration ...................................................................................................................... 4
Architecture ........................................................................................................................ 5
Deployment ........................................................................................................................ 7
Prerequisites ............................................................................................................. 7
Windows Server ......................................................................................................... 7
Linux Server .............................................................................................................. 8
Install NGINX............................................................................................................. 8
Configuration............................................................................................................. 8
Milestone Configuration............................................................................................... 11
Limitations......................................................................................................................... 12
Rollout Phases.................................................................................................................... 13
Introduction
BriefCam v6.2 debuts the new OX6 Next-Gen engine for real-time processing (performed on alert
processing servers). The new engine, which runs on Linux, uses a state-of-the-art approach and more
modern technologies to provide better accuracies and new capabilities and features.
Note: The first Next-Gen engine release is available for use with Milestone and Genetec plugins only.
The OX5 real-time engine cannot be used together with the OX6 real-time engine.
Benefits
The new engine provides many benefits, including:
• Optimization for real-time processing, providing faster alerts. The Next-Gen engine will not
offer Real-time alerts, but only Smart alerts and People Counting alerts. Smart alerts will
be received within 5 seconds of the rule being triggered and will use all available filters.
• Improved real-time throughput of approximately twice the number of real-time channels
when compared to the OX5 engine.
Configuration
BriefCam’s engine has two modes – on-demand and real-time. These modes are used by the different
modules as follows:
REVIEW RESPOND RESEARCH
In BriefCam v6.2, the administrator can decide whether to run the real-time progressing using the OX5
engine (“standard” mode) or the new OX6 real-time engine. To use the new engine, the administrator
needs to set the EnableOX6Realtime environment setting to true.
If this is selected, the real-time processing (RESPOND and real-time RESEARCH) will be done by the OX6
real-time engine and the on-demand processing (REVIEW and on-demand RESEARCH) will be done by the
OX5 on-demand engine.
Along with the switching of the underlying engine, some aspects of the UI will also change when
switching to OX6 – for example, there will be only one alert type (Smart Alerts) in the rule creation
wizard.
Architecture
A BriefCam Next-Generation deployment includes, at minimum, a Linux processing server and a Windows
BriefCam main server (or system of servers).
The main component that supports the real-time Next-Gen engine is the OX6 Alert Processing Server. This
server, running Linux, hosts the GPUs and performs the actual processing and replaces the OX5 Alert
Processing Server. When setting the system to run with the OX6 engine and activating the OX6 Alert
Processing Service, these OX6 Alert Processing Servers will start taking on real-time processing tasks
similar to the OX5 Alert Processing Server functionality.
The OX6 Alert Processing Server will be installed using Kubernetes and can also host GPUs allocated to
Edge Post-Processing, which is required by BriefCam’s Axis Edge Analytics offering.
An Axis camera and the Next-Gen engine cannot be run on the same GPU.
For more information about the Axis offering, see the BriefCam Edge Analytics on Axis document.
The diagram below depicts a basic deployment using the Next-Gen engine.
The OX6 alert processing server (or servers) runs on Linux inside a container and is managed by
Kubernetes, which manages a cluster of machines and a pool of GPUs.
Mosquitto, which is a third-party message broker using MQTT technology, passes the
messages/notifications from the Task Management service to the processing servers.
NGINX functions in this architecture as a load balancer.
Let’s see how this works when a user creates a rule in BriefCam:
1. The Task Management service sends/distributes processing tasks to the processing servers using
Mosquitto.
2. Each processing server then needs to get the live stream. The VMS Adaptor service is responsible
for translating the Windows SDK method of working to Linux based. It is the bridge between
existing integrations plugins (currently only Milestone and Genetec are supported) and RTSP live
streams expected by the Next-Gen engine.
3. The new engine starts to process the stream using two services: OX6.AlertRuleMatching and
OX6.VideoProcessingGateway.
4. Via NGINX, the two Next-Gen services distribute the alerts, write the objects, and more.
5. Kubernetes manages the cluster of servers. When you want to add more processing servers, you
do not add each server individually, but rather the Kubernetes management layer knows all of the
various hosts and can scale – by easily adding new applications on the hosts, remove/move
applications.
Deployment
Prerequisites
A minimum of two machines (virtual or physical) is required to use the Next-Gen engine:
1. One server that runs Windows. Note that a GPU is not needed on the Windows machine
unless on-demand processing is required.
2. One server that runs Linux Ubuntu (Ubuntu 20.04 Server or Desktop) with a GPU. This
machine will run the OX6 engine. Note that the Linux GPU is for real-time (RESPOND and
continuous RESEARCH) processing only.
o All machines with a GPU must have a supported version of the NVIDIA driver (495.46
or higher) installed on it.
Windows Server
You first must configure the Windows Server.
On the Windows server, carry out the following steps in this order:
1. Install BriefCam (Database, Server, Web Services).
2. Install Mosquitto. If the environment includes multiple Windows servers, Mosquitto only needs
to be installed one of the Windows servers.
a. Download Mosquitto v1.6.12 Windows x64 (this is the only version supported):
https://mosquitto.org/files/binary/win64/mosquitto-1.6.12-install-windows-x64.exe
b. Run the Mosquitto installer.
c. Click Next to install Mosquitto in the default location and click Install.
Linux Server
After you’ve installed the Windows server, you’ll install the Linux server by carrying out the following steps
in this order:
1. Install Kubernetes and configure the cluster. If your environment includes multiple Linux
servers, you only need to do this step on one Linux server.
a. Download the Kubernetes package (install_k8s.sh) and save it on the Linux machine.
b. Run the following Linux command in the directory where the installer was saved (in
step a): chmod +x install_k8s.sh
c. Run the following Linux command:
sudo ./install_k8s.sh --mode local --adminapi [IP address of the Windows machine] --
admin_password [BriefCam Administrator Console password] --UK1 [secret key 1] --
UK2 [secret key 2]
Install NGINX
Next, you’ll install NGINX on a separate machine or the Windows machine. When installing a small site,
you will usually install NGINX on the same server where the web services are installed. For larger sites,
NGINX should be installed on a dedicated machine.
Configuration
1. On the Windows machine, log into the BriefCam Administrator Console
(http://xxx.xxx.xxx.xxx/admin or http://[computer name]/admin) with the
following initial credentials:
o Username: Administrator
o Password: changeit
2. Change the password.
3. From the Environment Settings section, set the EnableOX6Realtime environment setting
to true.
5. On the Windows host, click on the settings icon and select the OX6 Main Server
template.
This will select all the relevant services including the four OX6 services:
6. From the Linux host, click on the settings icon and select the OX6.Alert Processing
Server service.
7. Open the GPUs section, then the OX6 GPUs tab and configure the RT GPUs column (the
number of Alert Processing (Real-time) GPUs to allocate out of the pool) and the Workers
Per RT GPU column (the number of real-time workers to allocate for each real-time GPU).
You must make sure that there are enough GPU resources by comparing the pool size and the
assigned GPUs.
Note that the pool size in does not change to reflect the actual state of GPUs – but is a
snapshot of when the system was installed.
8. Set the relevant administrator settings. (These need to be configured before starting the
services.)
The following administrator settings are used by the VMS Adaptor service:
• VmsAgent.GstLogFile – GStreamer log file path
• VmsAgent.GstPath – GStreamer binaries path
• VmsAgent.RtspPort – VMS Adaptor's RTSP port number
Milestone Configuration
If you are using the Milestone plugin with the Next-Gen engine, you need to install Milestone’s ONVIF
Bridge component. This allows the Milestone plugin to fetch video stream from the Milestone VMS. The
component is not included in the standard Milestone management + recorder installer. For a detailed
step-by-step guide, see http://download.milestonesys.com/MTSKB/KB000003403/ONVIF-Bridge-detailed-
guide.pdf
When configuring Milestone’s ONVIF Bridge, a user and password is created. The username and password
need to be added to the BriefCam.MilestoneIntegration.ini file. After you install the Milestone plugin,
you’ll find the file at: C:\Program Files\BriefCam\BriefCam Server\plugins\.
Open the file and in the [Live] section, set the following values and remove the semicolon (;) at the
beginning of each of these rows:
• RtspUserName = "Milestone onvif username"
• RtspUserPassword = "Milestone onvif password"
For example:
Limitations
• Overhead cameras are not supported.
• When creating a rule, the following are not supported: Animals, Airplane, Train, Boat,
Illuminations Changes and Other classes, and the Proximity and Count-based filters.
• Partial visual assets is always on and it is not possible to set the PartialVisualAssets
environment setting to false. Therefore, alerts generated by the engine will not have any
closeup clip and will not have a playable synopsis.
• The Next-Gen engine does not have high sensitivity mode.
• You cannot migrate old cases and alerts to the Next-Gen engine.
• You must have a clean install of BriefCam.
• The Next-Gen engine does not handle very small objects. Small objects that are not being
detected can be seen in the image below (in the red bounding boxes).
Rollout Phases
The current release of the Next-Gen Engine (real-time processing only) has been released in closed Beta
mode.
The closed beta release of the Next-Gen engine on February 21st means the Product team will select
several (less than 4) deployments to run in Beta mode (with full monitoring and maintenance by R&D).