> I’m currently thinking of moving over to continuous recording, perhaps trying out moonfire-nvr or mayhaps handwriting a gstreamer pipeline. Simple software -> fewer failure modes.
Moonfire's author here. Please do give it a try! Right now it's a little too simple even for me, lacking any real support for motion or events. [1] But I'd like to keep that simple server core that just handles the recording and database functionality, while allowing separate processes to handle Frigate-like computer vision stuff or even just on-camera motion detection, and enhance the UI and add stuff like MQTT/HA integration to support that well. I'd definitely welcome help with those areas. (And UI is really not an area of expertise of mine, as you can see from e.g. this bug: <https://github.com/scottlamb/moonfire-nvr/issues/286>.)
For now I actually run Moonfire and Frigate side-by-side. They're almost complete opposites in terms of what they support, but I find both are useful.
[1] The database schema has the concept of "signals" (timeseriesed enums like motion/still/unknown or door open/door closed/unknown), but my code to populate that based on camera or alarm system events is in my separate "playground" of half-finished stuff, and the crappy UI for it is rotting in one of my working copies. I'd like Moonfire's database/API layer to also have a more Frigate-like concept of "events" and one of "object tracks".
A killer feature would be a time series showing the rate of change from frame to frame. That would allow someone to jump to the more interesting parts of a video.
I'd love that, but it's hard to collaborate given differences in schedules, working styles, architectural direction, etc. I briefly asked Blake about collaboration back in 2020, and he was open to it, but (understandably) only in areas where we can work independently. (He mentioned wanting frontend help, which is about as far from what Moonfire and I are good at as can be.) I'm not sure what that'd be right now. I see Moonfire's server as basically a DBMS/engine for streaming video. If at some point, Frigate folks are interested in basically replacing their database and (now go2rtc) with Moonfire's, I'm absolutely open to discussing it. But Moonfire would need some feature work to avoid regressing anything they care about, with some discussions around what the API would look like and such. And I'm not moving real fast unfortunately (mostly due to lack of my time and lack of Rust-savvy collaborators).
So more realistically, I see Frigate as something I use in the short- to medium-term and take inspiration from in the long term. I'm not above essentially copying their motion and object tracking algorithms into a plugin, with proper attribution of course.
Frigate is neat because it challenged my idea of what the "minimum viable product" for an NVR could be. When I first looked at it, IIRC it didn't really have any UI at all and didn't support continuous recording. Instead, it just saved events as .mp4 files and published metadata over MQTT for a Home Assistant-based UI. It hadn't occurred to me that would be a useful system, but of course it was.
Moonfire's author here. Please do give it a try! Right now it's a little too simple even for me, lacking any real support for motion or events. [1] But I'd like to keep that simple server core that just handles the recording and database functionality, while allowing separate processes to handle Frigate-like computer vision stuff or even just on-camera motion detection, and enhance the UI and add stuff like MQTT/HA integration to support that well. I'd definitely welcome help with those areas. (And UI is really not an area of expertise of mine, as you can see from e.g. this bug: <https://github.com/scottlamb/moonfire-nvr/issues/286>.)
For now I actually run Moonfire and Frigate side-by-side. They're almost complete opposites in terms of what they support, but I find both are useful.
[1] The database schema has the concept of "signals" (timeseriesed enums like motion/still/unknown or door open/door closed/unknown), but my code to populate that based on camera or alarm system events is in my separate "playground" of half-finished stuff, and the crappy UI for it is rotting in one of my working copies. I'd like Moonfire's database/API layer to also have a more Frigate-like concept of "events" and one of "object tracks".