macOS · Swift + Node.js

screen-capture

A background screen-recording pipeline for macOS. It captures every display at one frame every five seconds and encodes hardware-accelerated HEVC, organised by day, and recovers from crashes on its own.

  1. screen-capture

    Swift

    yrambler2001/screen-capture

    A Swift ScreenCaptureKit capturer streams frames to FFmpeg (hevc_videotoolbox) under a Node.js supervisor that runs as a pm2 service.

    • Multi-monitor: internal and external displays stitched into one canvas
    • Hardware HEVC through VideoToolbox for low CPU use
    • Supervisor restarts a hung or crashed pipeline with progressive backoff
    • Watchdog detects stalled encodes (no file growth for 12 minutes)
    • Adapts when monitors are plugged in or removed
    • Recordings saved to ~/Recordings/YYYY-MM-DD/ in numbered parts
    • Requires macOS 12.3 or later, FFmpeg and Node.js