# Cloud native motion detection microservice This software implements the motion detection portion of well known [motion-project](https://motion-project.github.io/) as a microservice. For the tiling counterpart see `camera-tiler` repository. In a nutshell: - It brings the MJPEG stream into the cluster - Performs highly optimal JPEG DCT coefficient based motion detection without actually decoding the JPEG frame to a bitmap - Writes events to MongoDB - Generates thumbnails based on JPEG DCT coefficents - Uploads screenshots and corresponding thumbnails to S3 - Exposes endpoint for distributing MJPEG stream inside the cluster, eg for the `camera-tiler` - Exposes endpoint for inspecting DCT blocks where motion has been detected # Developing Bundled `docker-compose.yml` brings up: * [camdetect bypass stream](http://localhost:5000/bypass) * [camdetect debug](http://localhost:5000/debug) * [Minio](http://localhost:9001/buckets/camdetect/browse) * [Mongoexpress](http://localhost:8081/db/default/eventlog) * [Prometheus](http://localhost:9090/graph) * [mjpeg-streamer](http://user:123456@localhost:8080/?action=stream) To manually trigger event: ``` docker kill -sUSR1 camera-motion-detect_camdetect_1 ```