Skip to main content

RunRazor

Tools for movement analysis from stationary-camera footage.

If you film yourself or someone else repeating a course past a fixed camera -- hill repeats, sprints, drills -- RunRazor turns that raw footage into usable clips. It can use the subject's GPS track to find each pass automatically, or you can mark the cuts by hand. It can crop and follow the subject so they stay framed, and lets you compare runs side by side or export the cuts straight to a video editor.

Demo

RunRazor demo

Command What it does
runrazor The main app: extract clips from a video using GPS or manual cut points, review and tune the cuts, reframe, annotate, compare, and export (see rrdocs runrazor)
rrreframe Crop and follow a moving subject automatically so they stay framed (see rrdocs reframe)
rrcompare Play two runs side by side, lined up in time, to compare them (see rrdocs compare)
rrtag Mark matching points in two runs by hand so rrcompare can line them up (see rrdocs compare)
rrdocs Open the bundled documentation in your browser

Setup

RunRazor needs Python 3.11+, ffmpeg (with ffprobe) on your PATH, and libmpv for GPU-accelerated video playback.

Windows

Install prerequisites using winget (built into Windows 10/11):

winget install Python.Python.3.12 Gyan.FFmpeg mpv.net

Close and reopen your terminal so the new python and ffmpeg commands are on your PATH, then install RunRazor:

pip install runrazor

To update: pip install --upgrade runrazor

macOS

Install prerequisites using Homebrew:

brew install python ffmpeg mpv pipx
pipx install runrazor

To update: pipx upgrade runrazor

Linux (Debian/Ubuntu)

sudo apt update
sudo apt install python3 ffmpeg libmpv-dev pipx
pipx install runrazor

To update: pipx upgrade runrazor

RunRazor Application

The main application ties all the tools together: load a video (and a GPS track, if you have one), review and tune the cut points against the footage, reframe, compare, and export as an editor timeline (FCPXML/EDL) or a stitched MP4.

runrazor

See rrdocs runrazor for all options, hotkeys, time format, and examples.

Reframe

Automatic subject tracking and reframing pipeline. Crops video from a stationary camera to follow a moving subject. You can use this directly without the RunRazor segmentation.

rrreframe input.mp4

You may get reasonable results without any additional arguments.

See rrdocs reframe for fine-tuning, deshake, horizon correction, 360 video input, interactive mode, profile mode, and cache options.

Split-screen comparison

Side-by-side comparison of two ski runs (or one run against its own mirror), phase-locked turn-by-turn. It runs on Reframe outputs: each clip's trajectory sidecar (written by default) drives automatic turn-apex detection, and one clip plays at native speed while the other is retimed per turn segment to stay in sync.

rrreframe runA.mp4 --output a.mp4
rrreframe runB.mp4 --output b.mp4
rrcompare a.mp4 b.mp4 -o compare.mp4

To compare against an external clip that was never reframed (or to fix wrong auto-detected turns), tag its apexes with rrtag clip.mp4. See rrdocs compare for turn pairing, mirroring, pane fit, retiming, manual tagging, and the editable alignment JSON.


❄🤗❄

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

runrazor-0.3.8.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

runrazor-0.3.8-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file runrazor-0.3.8.tar.gz.

File metadata

  • Download URL: runrazor-0.3.8.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for runrazor-0.3.8.tar.gz
Algorithm Hash digest
SHA256 ef112ae02d930613a62dd6410a4646baaf7376dd76ac04a39d0952042256b970
MD5 31498030e4dc98d5938155e6702dbc88
BLAKE2b-256 1453f5ce0882d3402e9d740c09fd3dc2bd07ffbaa7a9121f7f7dd8723df5aede

See more details on using hashes here.

File details

Details for the file runrazor-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: runrazor-0.3.8-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for runrazor-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a6e3cbf54ac7f2b1269e5fbadfb41dd9d9fdb25cdcff96af4916d4d33ea8f8bb
MD5 ccff21fb5d035a2bb2143c94d32e3ee3
BLAKE2b-256 c7e8d4edd92b6ec496eb08e21f752696ef65c317add543dea1f2c7edad8d79b5

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

This release

0.3.8 This release

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.3

2 files

0.1.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page