feat(vision-replay): video normalization, smart dedup, and static ffmpeg - #1
Merged
Merged
Conversation
Add dedupe-video.sh script that removes static/unchanged frames from video files using ffmpeg mpdecimate filter. Integrated as Step 2 in the universal pipeline between metadata and contact sheet generation. Supports --pre-deduped flag so other skills (e.g., future record-browser) can signal that deduplication was already performed. Updated SKILL.md, AGENTS.md, Cursor rules, and tests (24/24 pass).
… and dual timestamps - Add normalize-video.sh: downscale high-res recordings + burn timestamp overlay - Rewrite dedupe-video.sh: VFR 120fps normalization, profile-based sensitivity tuning, deduped timeline overlay (dual timestamps: original white + deduped lime green) - Add Template 8 for workflow review animation sensitivity - Update setup.sh to detect drawtext and download static ffmpeg builds from martin-riedl.de - Update pipeline ordering: normalize -> dedup -> extract (timestamps before dedup) - Update README with static build instructions and new pipeline steps - Bump version to 1.1.0
Replace grep -q with grep > /dev/null in drawtext filter checks. With set -o pipefail, grep -q exits immediately on match, sending SIGPIPE to the upstream ffmpeg process, causing the pipe to return exit code 141.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--yesflag. Replacesbrew install ffmpegwhich lacks drawtext support.Why static ffmpeg builds?
The Homebrew core
ffmpegformula does not include libfreetype/harfbuzz — the drawtext filter is unavailable. Thehomebrew-ffmpeg/ffmpegtap requires specific Python versions that conflict with user environments. Static builds from martin-riedl.de are self-contained binaries with all filters included, signed and notarized for macOS.Test plan
bash tests/test-scripts.sh --check-ffmpeg— 30/30 passskills/record-browser/files included (stashed for separate branch)