Skip to main content

RunRazor: movement-analysis tools for stationary-camera footage

Project description

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 uses the subject's GPS track to find each pass automatically, 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.

Command What it does
runrazor The main app: automatically cut a video using the subject's GPS track, review and tune the cut points, reframe, 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 three things on your system:

  • Python 3.11+ -- to install and run RunRazor
  • ffmpeg (with ffprobe) on your PATH -- for video format support
  • libmpv -- for GPU-accelerated video playback in the app

1. Install the prerequisites

Pick the one command for your platform:

Windows (using winget, built into Windows 10/11):

winget install Python.Python.3.12 Gyan.FFmpeg mpv

After this finishes, close and reopen your terminal so the new python and ffmpeg commands are found on your PATH.

macOS (using Homebrew):

brew install python ffmpeg mpv

Linux (Debian/Ubuntu):

sudo apt install python3 python3-pip ffmpeg libmpv-dev

2. Install RunRazor

pip install runrazor

That's it -- run runrazor to launch the app. Documentation is bundled with the package; run rrdocs to open it in your browser (rrdocs reframe opens a specific page).

Updates

When a new RunRazor release is available, upgrade with:

pip install --upgrade runrazor

Use the same Python environment where you originally installed it.

RunRazor Application

The application window ties it all together: load a video (and a GPS track, if you have one), review and tune the cut points against the footage, reframe, 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.


❄🤗❄

Project details


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.2.3.tar.gz (235.4 kB view details)

Uploaded Source

Built Distribution

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

runrazor-0.2.3-py3-none-any.whl (261.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: runrazor-0.2.3.tar.gz
  • Upload date:
  • Size: 235.4 kB
  • 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.2.3.tar.gz
Algorithm Hash digest
SHA256 5b90c0ae6e53f327eca95aef581497b4170ff5153994e64a60a9d5e20d95d27d
MD5 5ce2bdd93ab5b6477dafb320083eade4
BLAKE2b-256 e1563d70878bfd855d9a2e6385d83aaa4f459490b33aabdf079128a1144fc49e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: runrazor-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 261.9 kB
  • 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.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d39f70b4db6ee2ae5faeaf51773a49a486cccbb763bf3b38340379edd78220b2
MD5 7d481dc32c475f5e6d60090aa5e7121b
BLAKE2b-256 5dbe9a2003e3a3bfb37bb476f3ea54394f3d8e3c8eeeb2483ac2d8c265c049b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page