I managed to get 1920x1080 motion vector detection in zoneminder with a ring buffer of 150 RGB frames ( it had to be big to avoid buffer overruns but I am also running all this on an sd card instead of a hard disk) at 15 fps ( I have throttled the source to 15 fps for now). Its early so there are probably bugs yet (web UI is messed up yet) and I haven't obviously done a lot of peformance testing. It shouldn't be possible to run this configuration except I cheated and resized the video to 640x360 prior to motion vector extraction thereby reducing the size of each RGB frame. It is also simultaneously encoding mp4 at 1920x1080 resolution. I will be trying next to build a function for I420 to jpeg which would be able to save jpegs at 1920x1080 and I think since it would be faster than the current RGB to jpeg function. . Currently jpegs are stored at 640x360. I am seeing CPU utilization of 40% and memory use at 25%. I think I could possibly be doing two streams at this resolution just given the CPU and memory usage. I am not sure if the RPI video bandwidth will allow this though. My initial goal was 4 640x360 streams or 3 704x420 streams or 2 1270x720 or 1 1920x1080 stream combinations. What are the theoretical limits for video bandwidth along with their corresponding gpu mem settings? How does input fps affect the calculations. I am hoping for 20 fps input rtsp streams running near realtime.
Thanks,
Chris