motiondetector icon indicating copy to clipboard operation
motiondetector copied to clipboard

GStreamer video motion detection plugin.

GStreamer Motion Detector Plugin

This is a simple GStreamer plugin that detects motion in a video stream in a Gstreamer pipeline. The element has one sink pad and one source pad, both only support 24-bit RGB formats.

Connect the element inline with your video stream and either watch the elements notify::motion-detected signal or watch for application bus messages containing motion information.

The plugin uses OpenCV to find moving blobs against an averaged background scene. It's not super-robust but it's still quite accurate. You can tweak the element properties to improve detection somewhat.

Here's a sample pipeline:

$ gst-launch -v --gst-plugin-path=$PLUGIN_PATH \
      autovideosrc ! \
      video/x-raw-rgb ! \
      motiondetector draw_motion=true rate_limit=500 ! \
      ffmpegcolorspace ! \
      queue ! \
      autovideosink