GitHunt
WI

willembeltman/CaptureMovementOnly

(Beta) Timelapse screen recorder for developers โ€” only saves frames when the screen changes.

CaptureMovementOnly

A timelapse screen recorder that captures only visual changes.
CaptureMovementOnly helps you create compact, meaningful timelapses of your development process (or any screen activity) by saving only frames where the screen actually changes.


What is it?

CaptureMovementOnly is a lightweight Windows desktop application that records your screen โ€” but only when something visually changes. This results in a clean timelapse that focuses on your activity, skipping over periods of inactivity.

Typical use case:

  • Record yourself coding or designing
  • Only changed frames are saved
  • Get a concise timelapse that shows your workflow without idle time
  • Generates tiny files with low CPU usage, ideal for long workdays

Features

  • ๐Ÿ–ฅ๏ธ Live desktop recording with change-detection
  • ๐ŸŽž๏ธ Existing video to timelapse: process any video into a shorter version based on visual differences
  • โšก Highly optimized using unsafe C# code and low-level memory operations
  • ๐ŸŽฎ DirectX 11 (via Vortice) for fast GPU-based screen capture
  • ๐Ÿ› ๏ธ FFmpeg integration for encoding/decoding without external GUI tools

Example: Developer Timelapse

Just leave the app running while you code.
At the end of the day, youโ€™ll have a sharp, shortened video that shows what you built โ€” skipping over any moment where nothing changed on the screen.


How it works

The application captures frames using DirectX and compares them pixel-by-pixel with the previous frame.
If thereโ€™s a visual difference, the frame is saved. If not, itโ€™s skipped.

This drastically reduces the number of frames stored and results in much smaller videos โ€” perfect for creating effective programming timelapses without wasting resources.

The same approach is used to process existing video files into shorter, visually-relevant versions.


Technical Details

  • Capture backend: DirectX 11 using Vortice.Windows
  • Video encoding/decoding: via FFmpeg and FFprobe
  • Frame comparison: custom algorithm using per-pixel RGB difference
  • Performance: low CPU usage

Requirements

  • Windows 10 or later
  • .NET 9 SDK
  • FFmpeg & FFprobe โ€” see below

Installing FFmpeg and FFprobe

CaptureMovementOnly requires both ffmpeg.exe and ffprobe.exe to be available in the root folder of the program (e.g. next to the .exe file of your project).

Step 1: Download FFmpeg

Download the official static build from:
๐Ÿ‘‰ https://www.gyan.dev/ffmpeg/builds/

Choose the latest release full build (Windows, static) and extract the contents.

Copy ffmpeg.exe and ffprobe.exe into the root of your project (for example: ~\CaptureMovementOnly\).

Step 2: Set Copy to Output Directory

Make sure ffmpeg.exe and ffprobe.exe are added to your project and set to:

Copy to Output Directory โ†’ Copy if newer


License

MIT License โ€” free to use, modify, and distribute.


Author

Made by Willem Beltman
GitHub: https://github.com/willembeltman/CaptureMovementOnly


Contributing

Pull requests and ideas are welcome!
If you have suggestions or improvements, feel free to open an issue or PR.

willembeltman/CaptureMovementOnly | GitHunt