Why do we need to identify a Camera/Video Resources?
It is very important to recognize each resource uniquely and individually.
For a professional VMS, you have to provide a solid function to video playback, video recording, and endpoint management. So, if you don't have a good way to identify a specific video resource, you can't meet those basic requirements for general or professional usage.
Besides, in the VMS, lots of functions and API requests can be reused by 3rd party developers. It is essential to support developers to grab the specific information they need.
That is why we have to identify every camera/video resource with a unique ID.
How does the VMS identify Camera/Video Resources?
In our database, every video resource will have a unique identifier, called Physical ID.
That is not only used by the VMS internally, but also used for external communication.
How is the Physical ID generated?
The Server begins by requesting the MAC address from end-devices via an ONVIF standard discovery request. If the Server obtains a MAC address in the reply, it will be saved as the Physical ID.
Sometimes the camera has an empty MAC address field in the discovery reply. In this case, the server takes a unique ONVIF GUID field value that is never empty and assigns this GUID as an internal Physical ID. If the video source is an RTSP stream, the VMS will use the URL as an argument for the md5-hash function. After calculating the hash, we use it as the Physical ID for the stream.
In most cases, this is enough to move forward, since the GUID usually doesn't change. There might be issues with devices of low quality, in worst cases, some of them might constantly change their GUID which results in the server continuously re-adding it every discovery cycle. There are also some cases where a camera's GUID changes upon a firmware upgrade.
If you have any questions related to this topic, or you want to share your experience with other community members or our team, please visit and engage in our support community or reach out to your local reseller.