Re:Kerberos: Open-Source Video Surveillance
by bradknowles on Sunday July 11, 2021 @11:29PM
(#27806659)
There are ways to configure Shinobi so that you don’t need ffmpeg to record the main stream — you just write it to disk and save it.
You would need ffmpeg only if you’re going to do motion sensing, and the recommended way of doing that is to run it on a separate stream that is lower resolution and lower frame rate, which you can the monitor and take actions on the main stream for that camera based on what you detect in the lower bandwidth stream.
I agree that you don’t want to do a lot of ffmpeg processing all over the place.
Re:Kerberos: Open-Source Video Surveillance
by GekkePrutser on Sunday July 11, 2021 @08:22AM
(#27800242)
The problem with offloading that to the camera is that onvif doesn't seem to have a standard way to report this. I only need motion detection on one cam so it wasn't an issue.
But good point, I wonder how Kerberos does this
Re:Kerberos: Open-Source Video Surveillance
by Keyb0ardWarr10r on Sunday July 11, 2021 @08:45AM
(#27800354)
It doesn't use the builtin ONVIF motion detection but instead processes every keyframe and does motion detection between the keyframes. So not every frame is being decoded to process, but enough to perform motion capture.
There's some interesting work w.r.t motion detection that doesn't actually require decoding the packets but rather looks at the motion vectors to estimate motion. That would save up a lot of resources..
Re:Kerberos: Open-Source Video Surveillance
by cvwright on Sunday July 11, 2021 @02:58PM
(#27803656)
> motion detection that doesn't actually require decoding the packets but rather looks at the motion vectors to estimate motion.
There's a very cool package for the Raspberry Pi that does this: https://github.com/billw2/pikrellcam
My major issue with Shinobi was each stream is processed by ffmpeg and I had 10+ cameras all requiring 10% cpu each to handle any object/motion detection. The cameras had object/motion detection functionality built in so I figured it made more sense to just do that work on the camera and not on CPU. I also tried offloading some jobs to GPU and that was not working properly, so I tried Nvidia Jetson and still no dice.