Hi Team,
Thanks for your time. I have a question regarding obtaining the Recording Server time at which metadata was stored.
From what I have been able to gather, metadata is stored in Milestone with the time information coming from the analytics event (as opposed to video which seems to be stored with time information coming from the Recording Server)
I would like to get the time (as in Recording server time) at which metadata was stored.
Getting the metadata via the Image Server protocol (goto for instance) gives me the event time, but this might not correspond exactly (to a couple of ms) to the Recording Server time when this was stored.
If its a camera sending video and events, the video might be behind a couple of seconds for instance.
Is there any API/integration to get the time the metadata was stored (Recording server time), rather than when it happened (camera/event source time)?
Thank you,
Andres Cruz G.
I have a feeling that I cannot answer without first mentioning that “metadata” might be two different things in the Milestone VMS. The following knowledge base article compares the two. If it does not give you the answer you seek please elaborate on your question and make sure you explain where the data is coming from.
https://developer.milestonesys.com/s/article/DATA-FROM-ANALYTICS-HOW-TO-BEST-IMPLEMENT-A-SOLUTION
Hi Bo,
Thanks for your reply. You were absolutely spot on with the article, cleared up a few things. great docs. Having read that I can improve the question/give more context.
In the article terms, I was referring to a metadata stream being stored as a metadata record in an XProtect Recording Server.
In our particular case, there is a camera generating video and metadata streams, both being stored in an XProtect Recording Server.
We may not have control over the camera config, so it is not guaranteed that best practices regarding time syncing cameras to the recording server are in place.
So, in this particular case, the timestamps stored in the recording server for these 2 streams (video and metadata from the same camera) for any instant in time may or may not coincide depending on how well the camera stays in sync (time) with the recording server.
Rewording the original question a bit:
Is there a way to obtain the time when the metadata was stored (moment it arrived at the server), rather than the timestamp of the metadata itself (camera time)?
Thanks for your help,
Andres Cruz G.
I believe the answer to be no, the driver is ultimately responsible for the timestamp when sending the data to the recording server.
Consider also this. If you have video being analyzed and then metadata being sent based on the analysis, then the data should be timestamped with the timestamp of the video data being analyzed in the first place, only in this way can video and metadata be synchronized.
Hi Bo,
Thanks for your reply. Makes perfect sense, appreciate the insights.
So, in the case of a camera and the RS being out of sync, the metadata coming from the camera (in relation to the corresponding incoming video stream) would be offset in the recording server records.
Working around issues arising from getting an image based on the metadata timestamp in this particular scenario.
Appreciate the insights and articles, can think of a few angles on how to approach the issue based on the details you shared.
Thanks for your time, have a great week.
Andres Cruz G.