Generate Sequences from Motion When Using Continuous Recording

In XProtect Enterprise, I was always able to use a generic event to trigger a motion event. In other words, when I had a camera set up for continuous recording (with the generic event added), I could trigger the generic event and the time-line would then show dark-red over pink (indicating motion), and a new sequence would be created. This allowed for easy browsing either in SC or by mobile which can easily move forward / backward in the sequence list.

After upgrading to XPo Expert 2017 R1, I find that this option no longer exists. There doesn’t appear to be any way to trigger a motion / sequence event during a continuous recording. Even if I do enable motion detection, only the _FIRST_ motion event correctly creates a sequence. Subsequent events only mark the timeline, but no new sequence is created.

I’ve contacted Milestone support, and they have been helpful but indicate this is “by design”. I was hoping someone might have an idea for a work-around. Ideally I’d like to be able to trigger by generic events.

Also, bookmarks won’t work here for 2 reasons, the biggest is that bookmarks can’t be navigated by the mobile browser, and the more minor is that bookmarks don’t have a defined duration.

Any thoughts would be greatly appreciated.

Thanks.

I did a little experimenting. I found no way to get multiple sequences unless there is a pause in recording.

Hi Bo,

Thanks for checking this. Unfortunately that’s what I found too, and it means I’ll have to use XPo Professional instead.

- Brian

@Bo Ellegård Andersen (Milestone Systems)​ Has this been resolved in 2018 R1?

I have just obtained a ‘corporate’ test license for the purpose of determining if an alarm triggered via an analytics event can mark a recording in a similar way to that seen by the recording of motion detection (red over pink). I too am continuously recording.

From what I’ve observed so far it doesn’t work and the playback just shows a continual pink line. Will I have to use VideoOS.Platform.Data.BookmarkService to add / alter a bookmark?

For example I could set a rule which creates the bookmark on the start of the FireAlarm event and set the duration of the bookmark for a small period (say 5 seconds) or lengthy period (say 1 day). Then when the stop of the FireAlarm event comes through I could (in code) alter the duration to be correct.

Thoughts on what to do or tips on what already exists would be appreciated.

David.

Hi David,

I tried some additional experimenting and I wasn’t able to get a sequence to be generated from any kind of external event (or internal motion for that matter). I’ve had to stay with XProtect Professional on a couple of job sites because of this problem.

Also, even I was able to create a bookmark - in my application it still wouldn’t work, since the mobile viewer isn’t able to browse through bookmarks.

One suggestion that was given to me was to create an alarm from an external event (easier since you can build a rule for it). This should mark the timeline, but again it just wasn’t as usable for the client as sequence markings.

-Brian

Brian,

Thanks for the reply. I’m hoping to overcome this in code as the event is generated by an MIPPlugin I’ve written that runs in EventServer (polling of a camera for it’s alarm status).

How does using XProtect Pro enable you to overcome this issue? What feature does that offer?

I’m also hopeful that the new 2018 R1 SDK will allow me to simplify my code that performs the poll of the camera. There is a new command that enables sending commands to a camera and retrieving the response.

Regards - David

David,

Pro is based on Milestone’s older code base (as compared to Pro+, Expert, Corporate, etc.). For whatever reason, the Pro software line handles sequences differently.

Using Pro, it’s as easy as creating a generic TCP event, and each time it triggers a new sequence is created. So you get the red-over-pink in the timeline, the mobile app can move forward and backward through the sequences, and they properly show in sequence explorer. It works perfectly.

This whole functionality is missing when moving to the Corporate-based products (Pro +, Expert, etc).

Hope that helps a little.

@Brian Elias (CFX)​ Thanks for the information.

@Bo Ellegård Andersen (Milestone Systems)​ Regarding this topic. I’m going to try and overcome the issue in a few different ways but wanted to run them by you incase you’d already tried or could tell me in advance that I was wasting my time :wink:

Current Setup

--------------------

I currently initiate a record by sending:

EnvironmentManager.Instance.SendMessage(new Message(MessageId.Control.TriggerCommand, theConnection.Value.CamFQID), TriggerEvent.FQID);

Where TriggerEvent is a user defined event that is setup in a rule:

Perform an action on StartFireAlarm

 from External

start recording 30 seconds before on the devices from metadata

Perform stop action on StopFireAlarm

 from External

stop recording immediately

To ensure that the alarm appears in the alarm manager I also send:

EnvironmentManager.Instance.SendMessage(new Message(MessageId.Server.NewEventCommand) { Data = eventData });

This is set as a triggering event in an alarm definition.

Ideas to overcome sequence issue

--------------------------------------------------

  1. Setup a rule / rules for stopping and starting the continuous record. This could then be used to create a ‘pause’ in the continuous recording while the alarm event is recorded. This may result in a sequence marker occurring.

  2. If possible trigger a motion detect event via the SDK somehow. Motion detection events triggered by setting the camera->motion detection setting result in the correct sequence markers being created.

  3. Give up on sequence markers and use bookmarks instead. I can create a bookmark based on a rule and then alter its duration at the end of an alarm event. I’m unsure if this will meet the customers requirements of being able to easily archive off events - can bookmarks be selected for archive, does this take into consideration the duration of the bookmark for the video that is archived?

Any thoughts, hints or suggestions would be appreciated.

Regards,

David.

You cannot trigger motion detect, it is only the routine that finds the motion detection that can do this.

I think bookmarks will fit.

What might be even better. You are today capable of building and using your own sequences. See the Smart Client Timeline Population Plug-in sample.

http://doc.developer.milestonesys.com/html/index.html?base=samples/sctimeline.html&tree=tree_search.html?search=timeline

@Bo Ellegård Andersen (Milestone Systems)​ thank you for the info - I completely missed the TimeLineViewItem example in my search for a solution. I’ve ran the example and had a look at the code.

Am I correct in saying that in the example the ribbon marks aren’t permanently stored with the timeline but are added each time the client view is loaded. Is there a way to permanently store them.

If the ribbon marks can’t be stored then I will have to generate them based on the stored alarm data. I’ll therefore need to configure alarms to be retained until an archive has been performed.

I will also have to re-generate the ribbon marks if an archive is reloaded. I’ve not looked at the archive functionality yet - I assume events (alarms) are stored alongside the imagery and therefore this could be achieved.

Based on the above, in your opinion, would bookmarks be better if the ribbon markers can’t be stored?

Thanks in advance.

David

Yes. The intention behind the design of TimeLine markers and sequences is that it is for showing data coming from outside XProtect, and your plugin will be responsible for saving and maintatining the data. With this in mind I think bookmarks is a better fit for you.