Releases: ZClassified/MoCapSTR
Release list
MoCapSTR v1.4.0 - Initial Public Release (Hardware Sync for FreeMoCap)
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
FSINsquare-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.arucoCharuco board detection overlay for instant calibration checks. - One-Click FreeMoCap Integration: Built-in offline batch converter (raw
.avito 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 Pollingin 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.exebelow, 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.txtfollowed bypython 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
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)
- Download the Windows binary (
MoCapSTR 1.3.2.exe) from the Assets section below. - Run the executable (no Python environment setup required).
- Connect your synchronized cameras or DeckLink sources and start capturing.
MoCapSTR v1.2.4 (Windows)
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)
- Download the Windows binary (
MoCapSTR-v1.2.4.exe/.zip) from the Assets section below. - Run the executable (no Python environment setup required).
- 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.