Summary
Add a --still-to-video flag (or similar) that converts a still image into a short animated video clip with hance effects.
Motivation
When using stills (e.g. website screenshots) in video projects, you currently need an external tool (ffmpeg) to convert the image into a video before hance can animate its effects (grain flicker, bloom, etc.). A static image with just grain overlay looks dead — it needs motion to feel cinematic.
Proposed behavior
hance screenshot.png -o output.mp4 --still-to-video --duration 3
- Applies a subtle default animation to give the still life:
- Slow ~2-3% zoom drift (Ken Burns style)
- Gentle pan/sway
- All existing hance effects animate naturally over the frames (grain flickers, bloom pulses, aberration, vignette)
- Duration configurable, default 3s
- Should feel cinematic out of the box with no extra params
Context
Built vidshot (a CLI that screenshots websites → animated video → hance) and the zoom/drift step is currently done via ffmpeg as an intermediate encode before passing to hance. This feature would let hance own the full still→video pipeline for the common case, eliminating the extra encode step and quality loss.
Scroll/pan animations over tall images would remain external since that's a different use case.
Summary
Add a
--still-to-videoflag (or similar) that converts a still image into a short animated video clip with hance effects.Motivation
When using stills (e.g. website screenshots) in video projects, you currently need an external tool (ffmpeg) to convert the image into a video before hance can animate its effects (grain flicker, bloom, etc.). A static image with just grain overlay looks dead — it needs motion to feel cinematic.
Proposed behavior
Context
Built
vidshot(a CLI that screenshots websites → animated video → hance) and the zoom/drift step is currently done via ffmpeg as an intermediate encode before passing to hance. This feature would let hance own the full still→video pipeline for the common case, eliminating the extra encode step and quality loss.Scroll/pan animations over tall images would remain external since that's a different use case.