Any light CPU load motion detection solution?

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?

Thanks

Have you consider using Google coral?

Seems like an overkill… But I’ll look into it. Thanks

Does your camera itself not provide a motion detected signal?

No it doesn’t. It’s just provides a RTSP stream. I’m trying to use Synology Surveillance station to achieve motion detection, however there’s still a problem of authentication… See How to use RESTFUL in trusted_network without authentication(token)?

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.