Automatically extract highlight rallies from broadcast-angle tennis match footage.
Breakpoint analyzes full-length tennis videos using audio-based hit detection and computer vision to identify, rank, and export the best rallies — no manual scrubbing required.
Website: xinyiz1226.github.io/Breakpoint
- Hit Detection — Detects ball strikes via audio onset analysis with adaptive thresholds
- Smart Segmentation — Splits the match into individual rallies using silence gaps, with density trimming and duration filtering
- Vision Ranking — Scores each rally by player motion intensity (large court coverage, diving saves, etc.)
- Rally Queue & Match Map — Browse rallies ranked by intensity in a queue view; visualize rally distribution across the full match in a match map
- One-Click Export — Export selected highlights as a single compiled video via ffmpeg
Breakpoint ships as a standalone Windows desktop application. No Python, ffmpeg, or other dependencies required — everything is bundled in the installer.
Grab the latest release from the Releases page:
- Breakpoint x.x.x.msi — MSI installer
- Open a video — Launch the app and click "Open Video" or select a recent project
- Analyze — The pipeline runs automatically: audio extraction → hit detection → segmentation → vision ranking. This produces a timeline (
full_report.json) of ranked rally segments — no video files are generated at this stage. - Review — Browse rallies in the Rally Queue (sorted by intensity score) and the Match Map (full-match overview). The system auto-recommends rallies in three tiers: highlight, keep, and cut.
- Edit — Click any rally to preview; adjust start/end times and toggle inclusion. Confirm your selection before export.
- Export — Click "Export" to compile the selected rallies into a single highlight
.mp4video
| Layer | Technology |
|---|---|
| Analysis engine | Python 3.14, librosa, OpenCV, NumPy, SciPy |
| Desktop app | Electron, React, TypeScript, Vite |
| Video processing | ffmpeg |
| Packaging | PyInstaller (engine), electron-builder (installer) |
engine/ Analysis pipeline (audio, vision, segmentation, ranking, export)
├── audio/ Audio extraction and hit detection (librosa)
├── vision/ Player motion analysis (OpenCV)
├── export/ Clip extraction and highlight compilation (ffmpeg)
├── pipeline.py Main orchestrator
├── segmentation.py
├── ranking.py
└── ffutil.py
desktop/ Electron + React desktop application
├── src/main/ Electron main process (Python bridge, ffmpeg export)
├── src/renderer/ React UI (video player, rally queue, match map)
└── scripts/ Build and packaging scripts
tools/ Development utilities (comparison, parameter sweep, tests)
web/ Legacy Flask web UI
This project is released under the GNU Affero General Public License v3 (AGPL-3.0).
- Personal / coach / research use: free of charge. You may freely deploy, modify, and use this project for personal match review or teaching.
- Cloud service and commercial use (anti-free-riding clause): if you plan to integrate this project's core algorithms (including but not limited to tennis target detection, rally segmentation, and automatic highlight editing logic) into your commercial SaaS, WeChat mini-program, commercial app, or paid website backend services, then under AGPL-3.0, you must open-source the complete source code of your entire commercial system without additional restrictions.
- Commercial License: if you do not want to open-source your system code but would like to use Breakpoint technology in commercial products, please contact the author for a commercial license.

