Performance
Consolidated the default ffmpeg PHash preprocessing pipeline from 26 subprocess launches (25 per-frame extractions + 1 tiling pass) into a single ffmpeg process using multiple seeked inputs and a filter_complex graph (scale → concat → tile → scale → grayscale).
- ~2-3x faster on real multi-GB video files (benchmarked across 9 files, 788MB-4.6GB)
- ~8-10x faster on short/small videos
- Identical hash output verified against the prior implementation
- Also removes the lossy per-frame JPEG round-trip from the default preprocessing path
See CHANGELOG.md for details.