Skip to content
Alsatian Clip Cutter after extracting four named clips from a 1 h 22 min recording.
All projects

Software and toolsLive· v1.1 · internal use

Alsatian Clip Cutter

A desktop app that extracts several named clips from an hours-long recording, in seconds and without quality loss.

My role
Design and development
Status
Live
Technologies
  • Python
  • PySide6 (Qt)
  • FFmpeg
  • NVENC
  • pytest

Overview

Alsatian Clip Cutter does one thing: it pulls the fragments you ask for out of a long recording and saves each one as an MP4 with its own name.

It was built for the REMATCH matches recorded at Alsatian Games, two hours or longer. It does not replace the video editor: it removes the repetitive work of finding, trimming, exporting and naming each clip before editing it in Kdenlive.

Cuts are written as text, one line per clip (“top-corner goal 44.02-44.56”), and the app validates them as you type.

  • Four clips extracted in fast mode (sample data)
  • Cut validation before extracting (sample data)

Key features

  1. 01

    Cuts written as text

    A name and an interval per line, with times like 44.02 or 1.01.00. A preview shows each clip’s start, end, duration and status.

  2. 02

    Validation before cutting

    It catches malformed times, reversed intervals, ends past the video and duplicate or invalid names. It never extracts a doubtful clip.

  3. 03

    Fast and precise modes

    Fast mode copies the data without re-encoding, in seconds even for hours-long recordings. Precise mode re-encodes to start on the exact frame.

  4. 04

    GPU acceleration

    Precise mode uses NVENC when an NVIDIA GPU is available and falls back to the CPU automatically if it fails.

  5. 05

    Nothing gets lost

    Each clip is written to a temporary file and only renamed if FFmpeg succeeds. It never overwrites without asking and can be cancelled at any time.

  6. 06

    Tested with real video

    90 tests, including real FFmpeg extractions on generated videos over two hours long and first-frame checks.

Role and responsibilities

My role

Design and development

  • PySide6 desktop interface, kept separate from the cutting logic.
  • Cut parsing and validation, independent of Qt.
  • FFmpeg extraction queue: progress, cancellation, temporary files and CPU fallback.
  • Unit, UI and real-extraction tests.