kinemotion 0.18.2__py3-none-any.whl → 0.20.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kinemotion might be problematic. Click here for more details.
- kinemotion/core/video_io.py +12 -2
- {kinemotion-0.18.2.dist-info → kinemotion-0.20.0.dist-info}/METADATA +62 -14
- {kinemotion-0.18.2.dist-info → kinemotion-0.20.0.dist-info}/RECORD +6 -6
- {kinemotion-0.18.2.dist-info → kinemotion-0.20.0.dist-info}/WHEEL +0 -0
- {kinemotion-0.18.2.dist-info → kinemotion-0.20.0.dist-info}/entry_points.txt +0 -0
- {kinemotion-0.18.2.dist-info → kinemotion-0.20.0.dist-info}/licenses/LICENSE +0 -0
kinemotion/core/video_io.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
import subprocess
|
|
5
|
+
import warnings
|
|
5
6
|
|
|
6
7
|
import cv2
|
|
7
8
|
import numpy as np
|
|
@@ -147,8 +148,17 @@ class VideoProcessor:
|
|
|
147
148
|
# Extract rotation from side_data_list (common for iPhone videos)
|
|
148
149
|
self.rotation = self._extract_rotation_from_stream(stream)
|
|
149
150
|
|
|
150
|
-
except
|
|
151
|
-
#
|
|
151
|
+
except FileNotFoundError:
|
|
152
|
+
# ffprobe not found - warn user about reduced functionality
|
|
153
|
+
warnings.warn(
|
|
154
|
+
"ffprobe not found. Video rotation and aspect ratio metadata will be "
|
|
155
|
+
"ignored. This may cause issues with mobile/rotated videos. "
|
|
156
|
+
"Install FFmpeg for full video support: https://ffmpeg.org/download.html",
|
|
157
|
+
UserWarning,
|
|
158
|
+
stacklevel=2,
|
|
159
|
+
)
|
|
160
|
+
except (subprocess.TimeoutExpired, json.JSONDecodeError):
|
|
161
|
+
# If ffprobe fails for other reasons, silently continue with defaults
|
|
152
162
|
pass
|
|
153
163
|
|
|
154
164
|
def read_frame(self) -> np.ndarray | None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kinemotion
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.0
|
|
4
4
|
Summary: Video-based kinematic analysis for athletic performance
|
|
5
5
|
Project-URL: Homepage, https://github.com/feniix/kinemotion
|
|
6
6
|
Project-URL: Repository, https://github.com/feniix/kinemotion
|
|
@@ -30,13 +30,18 @@ Description-Content-Type: text/markdown
|
|
|
30
30
|
# Kinemotion
|
|
31
31
|
|
|
32
32
|
[](https://pypi.org/project/kinemotion/)
|
|
33
|
+
[](https://pypi.org/project/kinemotion/)
|
|
33
34
|
[](https://opensource.org/licenses/MIT)
|
|
34
|
-
|
|
35
|
-
[](https://github.com/feniix/kinemotion/actions)
|
|
37
|
+
[](https://sonarcloud.io/summary/overall?id=feniix_kinemotion)
|
|
38
|
+
[](https://sonarcloud.io/summary/overall?id=feniix_kinemotion)
|
|
39
|
+
|
|
36
40
|
[](https://github.com/astral-sh/ruff)
|
|
37
|
-
[](https://github.com/microsoft/pyright)
|
|
42
|
+
[](https://github.com/pre-commit/pre-commit)
|
|
38
43
|
|
|
39
|
-
A video-based kinematic analysis tool for athletic performance. Analyzes vertical jump videos to estimate key performance metrics using MediaPipe pose tracking and advanced kinematics.
|
|
44
|
+
> A video-based kinematic analysis tool for athletic performance. Analyzes vertical jump videos to estimate key performance metrics using MediaPipe pose tracking and advanced kinematics.
|
|
40
45
|
|
|
41
46
|
**Supported jump types:**
|
|
42
47
|
|
|
@@ -88,27 +93,70 @@ For clinical, research, or performance assessment requiring validated accuracy,
|
|
|
88
93
|
|
|
89
94
|
## Setup
|
|
90
95
|
|
|
91
|
-
###
|
|
96
|
+
### System Requirements
|
|
97
|
+
|
|
98
|
+
**All Platforms:**
|
|
99
|
+
|
|
100
|
+
- Python 3.10, 3.11, or 3.12
|
|
101
|
+
|
|
102
|
+
**Platform-Specific:**
|
|
103
|
+
|
|
104
|
+
#### Windows
|
|
92
105
|
|
|
93
|
-
|
|
94
|
-
- asdf plugins for Python and uv
|
|
106
|
+
No additional system dependencies required.
|
|
95
107
|
|
|
96
|
-
|
|
108
|
+
**Recommended for mobile video support:**
|
|
97
109
|
|
|
98
|
-
|
|
110
|
+
- [FFmpeg](https://ffmpeg.org/download.html) - Download and add to PATH
|
|
111
|
+
|
|
112
|
+
#### macOS
|
|
113
|
+
|
|
114
|
+
No additional system dependencies required.
|
|
115
|
+
|
|
116
|
+
**Recommended for mobile video support:**
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
brew install ffmpeg
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### Linux (Ubuntu/Debian)
|
|
123
|
+
|
|
124
|
+
**Recommended system libraries:**
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
sudo apt-get update
|
|
128
|
+
sudo apt-get install -y \
|
|
129
|
+
libgl1-mesa-glx \
|
|
130
|
+
libglib2.0-0 \
|
|
131
|
+
ffmpeg
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Note:** `ffmpeg` provides the `ffprobe` tool for video metadata extraction (rotation, aspect ratio). Kinemotion works without it, but mobile/rotated videos may not process correctly. A warning will be shown if `ffprobe` is not available.
|
|
135
|
+
|
|
136
|
+
### Installation Methods
|
|
137
|
+
|
|
138
|
+
#### From PyPI (Recommended)
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
pip install kinemotion
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### From Source (Development)
|
|
145
|
+
|
|
146
|
+
**Step 1:** Install asdf plugins (if not already installed):
|
|
99
147
|
|
|
100
148
|
```bash
|
|
101
149
|
asdf plugin add python
|
|
102
150
|
asdf plugin add uv
|
|
103
151
|
```
|
|
104
152
|
|
|
105
|
-
|
|
153
|
+
**Step 2:** Install versions specified in `.tool-versions`:
|
|
106
154
|
|
|
107
155
|
```bash
|
|
108
156
|
asdf install
|
|
109
157
|
```
|
|
110
158
|
|
|
111
|
-
|
|
159
|
+
**Step 3:** Install project dependencies using uv:
|
|
112
160
|
|
|
113
161
|
```bash
|
|
114
162
|
uv sync
|
|
@@ -120,7 +168,7 @@ This will install all dependencies and make the `kinemotion` command available.
|
|
|
120
168
|
|
|
121
169
|
Kinemotion supports two jump types with intelligent auto-tuning that automatically optimizes parameters based on video characteristics.
|
|
122
170
|
|
|
123
|
-
### Drop
|
|
171
|
+
### Analyzing Drop Jumps
|
|
124
172
|
|
|
125
173
|
Analyzes reactive strength and ground contact time:
|
|
126
174
|
|
|
@@ -129,7 +177,7 @@ Analyzes reactive strength and ground contact time:
|
|
|
129
177
|
kinemotion dropjump-analyze video.mp4
|
|
130
178
|
```
|
|
131
179
|
|
|
132
|
-
###
|
|
180
|
+
### Analyzing CMJ
|
|
133
181
|
|
|
134
182
|
Analyzes jump height and biomechanics:
|
|
135
183
|
|
|
@@ -14,15 +14,15 @@ kinemotion/core/debug_overlay_utils.py,sha256=TyUb5okv5qw8oeaX3jsUO_kpwf1NnaHEAO
|
|
|
14
14
|
kinemotion/core/filtering.py,sha256=f-m-aA59e4WqE6u-9MA51wssu7rI-Y_7n1cG8IWdeRQ,11241
|
|
15
15
|
kinemotion/core/pose.py,sha256=ztemdZ_ysVVK3gbXabm8qS_dr1VfJX9KZjmcO-Z-iNE,8532
|
|
16
16
|
kinemotion/core/smoothing.py,sha256=C9GK3PAN16RpqJw2UWeVslSTJZEvALeVADjtnJnSF88,14240
|
|
17
|
-
kinemotion/core/video_io.py,sha256=
|
|
17
|
+
kinemotion/core/video_io.py,sha256=0bJTheYidEqxGP5Y2dSO2x6sbOrnBDBu2TEiV8gT23A,7285
|
|
18
18
|
kinemotion/dropjump/__init__.py,sha256=yc1XiZ9vfo5h_n7PKVSiX2TTgaIfGL7Y7SkQtiDZj_E,838
|
|
19
19
|
kinemotion/dropjump/analysis.py,sha256=xx5NWy6s0eb9BEyO_FByY1Ahunaoh3TyaTAxjlPrvxg,27153
|
|
20
20
|
kinemotion/dropjump/cli.py,sha256=J2F8ij-UcybY7YjK_bncQZiHNzrgS3Y7uTBkNo7y_L4,21328
|
|
21
21
|
kinemotion/dropjump/debug_overlay.py,sha256=LkPw6ucb7beoYWS4L-Lvjs1KLCm5wAWDAfiznUeV2IQ,5668
|
|
22
22
|
kinemotion/dropjump/kinematics.py,sha256=txDxpDti3VJVctWGbe3aIrlIx83UY8-ynzlX01TOvTA,15577
|
|
23
23
|
kinemotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
-
kinemotion-0.
|
|
25
|
-
kinemotion-0.
|
|
26
|
-
kinemotion-0.
|
|
27
|
-
kinemotion-0.
|
|
28
|
-
kinemotion-0.
|
|
24
|
+
kinemotion-0.20.0.dist-info/METADATA,sha256=z3hxeml55ljQHkty3vxiahTkMA9pnN1CgwMefmJWBp0,20249
|
|
25
|
+
kinemotion-0.20.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
26
|
+
kinemotion-0.20.0.dist-info/entry_points.txt,sha256=zaqnAnjLvcdrk1Qvj5nvXZCZ2gp0prS7it1zTJygcIY,50
|
|
27
|
+
kinemotion-0.20.0.dist-info/licenses/LICENSE,sha256=KZajvqsHw0NoOHOi2q0FZ4NBe9HdV6oey-IPYAtHXfg,1088
|
|
28
|
+
kinemotion-0.20.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|