I’ve been using ffmpeg to detect motion from a stream (1920x1080 30fps). It worked well except the high CPU load. It constantly uses 40% of the CPU and this is just for one stream.
The hardware configuration is:
NUC: (i5-5250U)
ESXi:
Ubuntu: (4 cores)
Home assistant Docker container:
I tried to shut down other virtual machines just make the CPU test result accurate.
I guess ffmpeg is analyzing every frame to detect the motion, but can’t find any useful information in the help to reduce that number. Or, is there any other lighter way to detect motion from a stream?
If the camera supports a low resolution stream you could try using that. I take that approach with my own setup and it does significantly reduce the load.