I don't like the idea of having one docker per camera though.. But I'll give it a try.
I don't like the idea of having one docker per camera though.. But I'll give it a try.
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.
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.
But good point, I wonder how Kerberos does this
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..
There's a very cool package for the Raspberry Pi that does this: https://github.com/billw2/pikrellcam
xeoma is paid but runs in docker on linux just fine