Skip to content

VideoHighlighter 0.8.2

Choose a tag to compare

@github-actions github-actions released this 16 Jul 07:03
· 255 commits to main since this release

Windows download: grab both VideoHighlighter-Windows-0.8.2.7z.001 and
VideoHighlighter-Windows-0.8.2.7z.002, put them in the same folder, and extract
the .001 — 7-Zip joins the parts automatically. Downloading only one part will
fail to extract. macOS users need only the .dmg.

⚠️ Upgrade note — saved faces must be re-enrolled

Face recognition moved to a new engine (see below). Embeddings changed from 512-d
to 128-d, so entries in an existing face_db.json are cleared on first load and any
person you had enrolled for "avoid" must be re-added once. One-time only.

New Features

Hardware-accelerated highlight export, with live progress
Rendering was CPU-only (libx264), gave no feedback, and failed outright on VR
sources. Export now probes ffmpeg -encoders and uses your machine's hardware
encoder — a large speedup at VR resolutions — with progress reported as it runs.
Encoder choice is device-aware (NVIDIA → NVENC, Intel → QSV), and picks HEVC for
high-resolution/VR footage above 4096px where H.264 hardware can't reach. libx264
remains the final fallback, so it always works. The same selection now drives the
pipeline's cut/concat, not just the editor — both share one module
(modules/encoder_select.py), with probes cached instead of re-run.

Edit timeline: build a cut without dragging every clip

  • Right-click any signal bar → "Add this clip to edit timeline", or
    "Add all query clips (N)" to append every bar in that row at once. Clips are
    deduped and sorted by start time. Complements the existing drag-and-drop and
    Ctrl+click.
  • Multi-select clips with Ctrl / Shift / Ctrl+A and remove them in bulk.
  • Auto-save on close — manual edits used to be discarded unless you pressed
    "Save to Cache". Closing the window now saves them if you actually changed
    anything, and they're restored when you reopen.
  • The timeline starts empty instead of fabricating sample clips.
  • Play Edit scrolls the timeline to follow the playhead.

Custom object detectors in the Advanced tab
The pipeline could always run a custom-trained model, but there was no way to pick
one. Choose "Custom (my trained model)" and point it at a .pt or .onnx file;
the choice persists to config.yaml. A trained model is finally usable end to end.

Live BBox Overlay: real gating and per-item filters
The checkbox now gates the real-time worker itself rather than just hiding cached
boxes — unticking it actually pauses inference instead of leaving it running. It
also stays usable in real-time mode with an empty cache. The Filter menu is
regrouped by source — Object / Action / Facial recognition — with every detected
item individually show/hide-able, and the facial group rebuilt live from the face
bank.

Downloader: automatic link detection
You no longer type a per-site link pattern by hand — the field is gone. The
downloader inspects the page's links against known video-path tokens (/video/,
/watch, /embed/, /scene/, …), picks the best-supported one, and logs its
choice. An explicit pattern still overrides it.

About & Contact tab
Shows version and edition, a link to the Pro edition, support links (email,
Discord, website, source), and AGPLv3/CLA notices.

Improvements

  • Faster thumbnails: on-screen frames are prioritised, 8K sources decode
    keyframes only, and the edit timeline pulls thumbnails via ffmpeg — a large
    speedup on VR footage.
  • Smoother timeline during visual search: rebuilds are debounced, so hundreds
    of streaming hits repaint once after the burst instead of once each.
  • Motion detection reports progress in the GUI instead of appearing frozen.
  • Permissive face recognition: InsightFace's buffalo_l weights are licensed
    for non-commercial/research use only, which conflicts with this AGPL freeware.
    Face detection/recognition now uses OpenCV Zoo YuNet (MIT) and SFace,
    both bundled. The insightface dependency is gone. See the upgrade note above.

Fixes

  • "Follow Playhead" could not be re-enabled on PySide6 6.10.
  • Visual Search no longer crashes on a second run when the worker thread had
    been torn down.
  • Download cancel actually stops the download and frees the UI.
  • Logs stay selectable and copyable while streaming, and assistant messages
    render on separate lines instead of running together.
  • Play Edit resumes where edit playback stopped, not at the main playhead.
  • Clicking mid-edit hands control back to the video timeline.
  • A stuck hover preview after deleting a clip by keyboard or button.
  • Visual-search findings persist even when the cache has no video_hash or
    the file is missing.
  • A fresh clone was missing modules and wouldn't start.
  • The Windows release archive name is quoted correctly in the build workflow.

Developer / CI

  • Static local-import completeness check (thanks @pixelfreaki, #6) — catches
    imports of modules that aren't committed, the failure that breaks a fresh clone
    or a packaged build. Runs in the test suite with no heavy dependencies.
  • CONTRIBUTING.md and a Contributor License Agreement for dual-licensing.
  • insightface dropped; opencv-python>=4.7 pinned (needs FaceDetectorYN /
    FaceRecognizerSF).