Pre Record on Camera Rule "Camera Record"

Answered

Comments

14 comments

  • Official comment
    Avatar
    Tony Luce

    Hey Glen - 

    You're correct this feature should exist. You're also correct that it doesn't yet. It's just one of those things that has yet to be implemented. Talked to the Dev guys and they are going to try and see how fast they can work it into an upcoming release.

  • Avatar
    Paul Henson

    I'm using cameras which don't have native analytics support and using generic events to trigger recording. I also would like to be able to specify a pre-event recording interval, is this feature for native camera analytics or would it also apply to recording initiated by a generic event?

  • Avatar
    Norman Graafsma

    Hi Glen and Paul,

    The most appropriate solution would be to add 'Bookmark' as an action. In this way, you can add a pre-recording period up to 30 secs. 

    If you want or need a longer pre-recording period, you can use 'Do HTTP request' and add a query that can produce a bookmark with a pre-recording up to 10 minutes. Check our server API (search for '/ec2/bookmarks/add') for the relevant information. 

    Be aware, to add pre-recording to a bookmark, there need to be data available. So the camera should be set to 'Continuous' or 'Motion+Lo-Res'. And be aware that Lo-Res should match the purpose. So for a line crossing, Lo-Res might do the job, but for LPR this is unlikely. 

  • Avatar
    Glen Harrison

    seems madness not to just add a Pre Record time option to the "camera record" action

     

  • Avatar
    Tony Luce

    Hi Glen - the way the software is written - namely, to optimize resource usage - means that streams aren't being recorded unless they have been enabled for recording. So if you want to start recording you need to enable recording (either through event or manually) and only from that point forward will streams be captured and related archives available for review.

    So to be able to pre-roll video based on an event you'd either need to have recording already enabled or....go back in time. And we're all out of flux capacitors!

    But seriously - it's a good request and it makes sense but we have to do some refactoring in the way we deal with live streams vs recorded streams in order to make it happen. Appreciate the feedback!

     

  • Avatar
    Paul Henson

    I'm not sure I understand your recommendation. On the camera configuration page, the only options available without enabling the software motion detection are "Record Always" and "Do not Record". I currently have them set to "Do not Record" and have a generic event initiate recording. You're saying to set them to "Record Always", and rather than have an event initiate recording have it create a bookmark? Won't that result in, well, always recording rather than just recording when an event happens? So the bookmark indicates when something happens rather than the existence of the recording? But that will use a *ton* more space than just recording when events occur?

    Then to record all the time in low-res, you have to enable software motion detection, which will use server resources and also capture video when it wants to rather than just based on the external events.

    I don't really see this as a good workaround for the lack of pre-buffer support on generic event based recording.

    I'm also not sure about your explanation regarding enabling streams for recording. On the general configuration page, there's a toggle for whether or not a camera is enabled for recording, that is separate from the "Record Always", "Motion only", "Low res/motion", "Do not Record" settings. From what I can tell, the streams from a camera whose toggle is set to enable recording are being sent to the server, even if the camera is configured for "Do not Record"?

    Why is it more resource intensive to have a prebuffer for a generic event based recording than it is for a prebuffer for an internal motion based recording? Wouldn't it be fairly simple to have on the motion configuration page a toggle for "software motion" vs "external event motion", and just use the existing framework that already captures a prebuffer?

    Thanks...

  • Avatar
    Glen Harrison

    Also I,m sure that Flux Capacitor now runs on Banana Skins etc , 

  • Avatar
    Tony Luce

    Hey Paul -

    If you noticed the first line of my response this is the result of the way the software is currently written. To me you're absolutely right on most of your points - namely that it would best best to have the ability to do have a pre-roll "buffer" in lieu of having to record all the time. 

    However - that's the way it works right now, so the only real workarounds here are what Norman listed above - e.g. recording all the time or low-res always + events.

    In terms of it being "relatively simple" I guess the key word here would be "relatively". Every new feature we add or modify goes through at least 12 weeks of regression testing before being deployed as part of a public build, so what may seem like a minor thing here on its face is actually much more complicated than it may appear from a product management / stability perspective.

    The majority of our users out there are recording 24/7 (what I call "making boring movies") rather than trying to optimize their storage usage. I'm with you guys on this one! Seems wasteful to have to record or use motion + low-res always to be able to add a pre-roll on event-based recordings! Hopefully something we fix soon.

  • Avatar
    Kieran Vella

    This seems all possible within the existing framework with one change to the event recording:

    -Set camera to record motion (So that the buffer is enabled)

    -Set motion area for the camera to 0 (So that Nx wont record motion, but the buffer is still going)

    The only change in Nx being:

    -Allow generic events to trigger recording of pre event buffer

     

    Would that not work?

  • Avatar
    Tony Luce

    Hey Kieran - 

    Interesting idea! I tried it. Looks like it may work, but need to investigate a bit more. Video of my attempt: https://youtu.be/s5UwhhYRuoM

  • Avatar
    Paul Henson

    Hmm, if you enable software motion detection, but set it to 0 for the whole area, will it still use up CPU analyzing it but never trigger, or will it not analyze it at all but still have a pre-buffer available? I see you left one square with a non-zero threshold, setting them all to 0 wouldn't work? I'll have to try this out and check out the CPU utilization... Thanks...

  • Avatar
    Tony Luce

    Hi Paul - server side motion detection takes up ~1% of CPU usage according to what my developers tell me as we use the sub-stream for motion detection. But the best way to test would be to try it out on your own system and use the server health monitoring in the client to see what the impact is to your own machine.

     

  • Avatar
    Byron Paul

    Can I add a 'me too' on this feature request? 30 sec pre-record and triggering via API would solve a lot of problems for our customers!

  • Avatar
    Alan Hares

    I'll second that Byron 30-40 secs pre-record via API would solve everything :)

Please sign in to leave a comment.