Possible causes and solution(s)
Overview
In complex BVMS installations with VideoJet decoders and large camera counts, operators often need to quickly switch predefined camera sets on a Video Wall based on operational scenarios (for example, different courtrooms, alarms, or external inputs).
This article explains:
-
Why Operator Client Favorites do not persist VideoJet Monitor Group camera assignments
-
What behavior is expected by design
-
How BVMS scripting can be used to dynamically control layouts, camera placement, and scenarios
-
How to assign specific cameras to specific panes on a VideoJet Monitor Group
System overview (scenario):
-
BVMS version: 12.3.x
-
VideoJet Decoders: VJD-7153 / VJD-7533
-
Monitor Group: Multi-monitor Video Wall (example: 4 monitors)
-
Operator Client used for daily operation
External inputs (e.g., Advantech I/O module) used as event triggers
Problem
Operators expect to:
-
Create multiple camera presets for a Video Wall
-
Save and recall these presets using Operator Client Favorites
-
Restore exact camera-to-pane assignments after restarting Operator Client
However, the following behavior is observed:
-
Favorites correctly restore camera panes in Operator Client
-
Favorites do not persist camera assignments on VideoJet Monitor Groups
-
After restarting Operator Client, the Monitor Group reloads its original configuration
-
Reloading a Favorite does not revert the VideoJet Monitor Group cameras to their previous positions
Expected Behavior
This behavior is expected in BVMS.
Key points:
-
VideoJet Monitor Groups are configured and persisted in BVMS Configuration Client
-
Operator Client Favorites do not store:
-
Decoder pane-to-camera mappings
-
VideoJet Monitor Group layouts as a matrix preset
-
-
Favorites only store:
-
Monitor Group assignment
-
Operator Client camera panes
-
As a result:
-
Any temporary camera changes made to a Monitor Group during live operation are lost after Operator Client restart
-
Monitor Group configuration always reloads from the Configuration Client
Solution
Recommended Solution: BVMS Scripting
To dynamically control VideoJet Monitor Groups, BVMS Client or Server Scripts must be used.
Scripting allows you to:
-
Change decoder layouts programmatically
-
Assign specific cameras to specific decoder panes
-
Trigger scenarios using:
-
Events
-
Alarms
-
External I/O inputs
-
Favorites (script execution)
-
This is currently the only supported method to achieve scenario-based VideoJet layouts.
Understanding Decoder Logical Numbers
A common source of confusion is the method:
GetDecoderByLogicalNumber()
Important clarification:
-
This does not refer only to the physical decoder device
-
It refers to decoder pane logical numbers
-
Logical numbering is sequential across monitors
Example:
-
Monitor 1 panes: 1–25
-
Monitor 2 panes: 26–50
-
Monitor 3 panes: 51–75
-
Monitor 4 panes: 76–100
Each logical number represents a specific pane position on the Video Wall.
Assigning Cameras to Specific Panes
To place cameras in exact positions:
-
Identify the layout (e.g. 1x1, 2x2, 1+8, etc.)
-
Identify the pane logical number where the camera should appear
-
Assign the camera to that pane using scripting
If cameras were manually disconnected from panes, scripts must:
-
Explicitly set layout
-
Explicitly reassign all required cameras
Script Example:
|
[Scriptlet("c3d4f49f-77c8-4c05-8a97-ac46f98213d1")]
|
|---|
What Is and Is Not Possible
✅ Possible
-
Assign cameras to specific VideoJet panes
-
Change layouts dynamically
-
Trigger layouts via events, alarms, or scripts
-
Restrict script access via user permissions
❌ Not Possible
-
Save VideoJet Monitor Group layouts as Operator Client Favorites
-
Persist VideoJet pane assignments without scripting