video-analysis-workflow
Guides video analysis for CMJ and drop jump. Use when processing athlete videos, debugging pose detection, troubleshooting analysis failures, or running kinemotion CLI commands.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Video Analysis Workflow
Analysis Commands
# CMJ analysis
uv run kinemotion cmj-analyze <video> [--output debug.mp4]
# Drop Jump analysis
uv run kinemotion dropjump-analyze <video> [--output debug.mp4]
# Batch processing
uv run kinemotion cmj-analyze videos/*.mp4 --batch --workers 4
Quality Presets
| Preset | Use Case | Trade-off |
|---|---|---|
fast |
Quick preview, large batches | Lower accuracy |
balanced |
Default, most use cases | Good accuracy/speed |
accurate |
Validation, research | Best accuracy, slower |
uv run kinemotion cmj-analyze video.mp4 --quality accurate
Debug Output
Always use --output debug.mp4 when:
- Metrics seem incorrect
- Troubleshooting pose detection
- Validating new videos
- Training coaches on video quality
The debug video shows:
- Skeleton overlay with joint angles
- Phase markers (takeoff, landing, peak)
- Real-time metrics display
Camera Angle Recommendations
| Angle | Recommendation | Reason |
|---|---|---|
| 45° oblique | Recommended | Both legs clearly visible, accurate tracking |
| 90° lateral | Not recommended | MediaPipe confuses left/right feet (occlusion) |
| Front/back | Not recommended | Depth ambiguity for sagittal plane motion |
Troubleshooting
No Takeoff Detected
- Verify video contains complete jump (before, during, after)
- Check athlete is fully visible throughout
- Try
--quality accuratefor stricter detection - Review debug video for landmark quality
Invalid Metrics
- Video may be too short (need full jump cycle)
- Athlete may be partially occluded
- Poor lighting affecting pose detection
- Camera shake causing landmark jitter
Jittery Landmarks
- Check lighting conditions (avoid backlighting)
- Ensure stable camera (tripod recommended)
- Verify athlete clothing contrast with background
- Try
--quality accuratefor better filtering
Rotation Issues (Mobile Videos)
- Mobile videos often have rotation metadata
- kinemotion handles this automatically via
video_io.py - If issues persist, pre-process with:
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
Video Requirements
| Requirement | Specification |
|---|---|
| Frame rate | 30+ fps (60+ preferred) |
| Resolution | 720p minimum |
| Duration | Full jump cycle visible |
| Lighting | Even, front-lit preferred |
| Background | Contrasting with athlete |
| Camera | Stable, tripod recommended |
Output Metrics
CMJ Metrics
-
jump_height_cm: Calculated from flight time -
flight_time_ms: Time in air -
countermovement_depth_cm: Lowest point before takeoff -
takeoff_velocity_m_s: Velocity at ground leave -
triple_extension: Hip, knee, ankle angles at takeoff
Drop Jump Metrics
-
ground_contact_time_ms: Time on ground after drop -
flight_time_ms: Time in air after contact -
reactive_strength_index: RSI = flight_time / contact_time -
drop_height_cm: Initial drop height (if detectable)
Python API Alternative
from kinemotion import process_cmj_video, process_dropjump_video
# CMJ
metrics = process_cmj_video("video.mp4", quality="balanced")
# Drop Jump
metrics = process_dropjump_video("video.mp4", quality="balanced")
Advanced Troubleshooting
If you encounter issues not covered here:
- Use
ref_search_documentationto check Kinemotion docs or MediaPipe/OpenCV docs. - Use
web_search_exato search for similar issues online.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!