Skip to content

Releases: ZClassified/MoCapSTR

MoCapSTR v1.4.0 - Initial Public Release (Hardware Sync for FreeMoCap)

Choose a tag to compare

@ZClassified ZClassified released this 25 Aug 11:22

MoCapSTR v1.4.0 — Hardware-Synchronized Multi-Camera Recording for FreeMoCap

Welcome to the initial public release of MoCapSTR!

MoCapSTR is an open-source recording client engineered specifically to capture frame-accurate, hardware-synchronized multi-camera datasets on Windows for FreeMoCap.


⚡ Highlights & Key Features

  • Arduino Hardware Synchronization: Triggers Innomaker OV9281 global-shutter USB cameras synchronously via an Arduino FSIN square-wave pulse. Includes automatic fallback to free-run mode if disconnected.
  • Zero-Copy PyAV Recording Backend: Writes incoming raw MJPEG camera streams straight to disk via FFmpeg/PyAV without CPU decoding overhead, minimizing frame drops even with high camera counts.
  • Blackmagic SDI Support: Full Genlock/SDI capture card support via Blackmagic Desktop Video drivers.
  • Live Multi-Cam Preview & Charuco Overlay: Real-time multi-view grid with per-camera rotation (0°, 90°, 180°, 270°) and live cv2.aruco Charuco board detection overlay for instant calibration checks.
  • One-Click FreeMoCap Integration: Built-in offline batch converter (raw .avi to H.264 .mp4) and one-click transfer to ~/freemocap_data/recording_sessions/.
  • Complete 3D Printing & Enclosure Guide: Includes FreeCAD source models, ready-to-print STLs, fastener BOMs, and step-by-step photo assembly guides for camera cases, trigger boxes, and XLR splitter boxes.

⚠️ Important Hardware Requirements & USB Bandwidth

Because hardware-triggered cameras expose and transmit raw video packets at the exact same microsecond, simultaneous bandwidth spikes occur on the USB bus:

  • Motherboard Limit: Standard onboard PC USB controllers typically handle up to 3 cameras reliably in trigger mode.
  • Recommended Setup for 4+ Cameras: We strongly recommend installing a PCIe USB expansion card with dedicated controller chips per port (e.g. 4 separate USB controller chips) to prevent dropped frames.
  • USB Polling: Set USB Polling in the Setup tab 1 step higher than your target FPS (e.g. Target 30 FPS -> USB Polling 60 FPS).

📦 Installation & Download

  • Windows Standalone Executable: Download the attached MoCapSTR.exe below, place it in a folder of your choice, and run it directly. No Python installation required!
  • Source Code: Clone the repository and run pip install -r requirements.txt followed by python python/main.py.

🤝 Community & Bug Reports

This project is in active beta development. If you encounter bugs, hardware quirks, or have ideas, please open an Issue on GitHub!

MoCapSTR v1.3.2 - Perfect Hardware Sync, Auto-Trim & Physical Rotation

Choose a tag to compare

@ZClassified ZClassified released this 19 Aug 16:22

MoCapSTR v1.3.2

This release contains the standalone Windows executable for version 1.3.2. It marks a massive leap forward from v1.2.4, introducing frame-perfect hardware synchronization, automatic clip trimming, physical video rotation, and major stability improvements for seamless FreeMoCap integration.

Major Changes Since v1.2.4

  • Perfect Hardware-Trigger Sync & Atomic Start: Completely overhauled the recording engine using a two-phase atomic start. Cameras now start and stop on the exact same microsecond frame pulse, guaranteeing absolute frame alignment across all views.
  • Automatic Post-Recording Trim: Added a background processing step that automatically trims all recorded clips to the exact same frame count (lossless PyAV stream-copy) immediately after a take. This resolves any clip length rejection issues when importing into FreeMoCap.
  • Physical Video Rotation (Export Tab): The Exporter now supports physical frame rotation during the raw AVI to H.264 MP4 transcoding process. A new live-preview thumbnail helps visualize the rotation, guaranteeing flawless portrait-mode output for FreeMoCap without relying on metadata tags.
  • Enhanced Stability & Initialization:
    • Fixed the notorious "4th Camera Disconnect" bug by removing aggressive USB bandwidth hacks.
    • Solved MSMF vs. DSHOW index mismatches, ensuring reliable UVC commands (like exposure and trigger states) across identical cameras.
    • Removed experimental driver reset features that caused application deadlocks, making the "Initialize System" routine extremely robust.

Key Capabilities

  • Synchronized Multi-Camera Recording: Reliable multi-view capture tailored for motion analysis and pose estimation.
  • Hardware Trigger Support: Optimized for microsecond-level synchronization with hardware-triggered cameras (e.g., Innomaker/Arducam OV9281 via Arduino sync pulse).
  • Professional Capture Cards: Direct support for multi-channel SDI capture solutions (e.g., Blackmagic DeckLink Duo 2).
  • USB Webcam Fallback: Standard USB webcams (without sync pins) can be used as a fallback for testing and basic setups. But be careful: without a trigger signal, the cameras can drift out of sync and the recorded clips may differ in length by a few frames.

Installation & Usage (Windows)

  1. Download the Windows binary (MoCapSTR 1.3.2.exe) from the Assets section below.
  2. Run the executable (no Python environment setup required).
  3. Connect your synchronized cameras or DeckLink sources and start capturing.

MoCapSTR v1.2.4 (Windows)

Choose a tag to compare

@ZClassified ZClassified released this 17 Aug 15:32

MoCapSTR v1.2.4

This release contains the standalone Windows executable for version 1.2.4

Key Capabilities

  • Synchronized Multi-Camera Recording: Reliable multi-view capture tailored for motion analysis and pose estimation.
  • Hardware Trigger Support: Optimized for microsecond-level synchronization with hardware-triggered cameras (e.g. Arducam OV9281 via Arduino sync pulse).
  • Professional Capture Cards: Direct support for multi-channel SDI capture solutions (e.g. Blackmagic DeckLink Duo 2).
  • USB Webcam Fallback: Standard USB webcams (without sync pins) can be used as a fallback for testing and basic setups.

Installation & Usage (Windows)

  1. Download the Windows binary (MoCapSTR-v1.2.4.exe / .zip) from the Assets section below.
  2. Run the executable (no Python environment setup required).
  3. Connect your synchronized cameras or DeckLink sources and start capturing.

For bug reports, hardware setup questions, or feature requests, feel free to open an Issue.