Plan and assemble timelapse and hyperlapse videos end to end: interval math for the subject, exposure smoothing, hyperlapse shooting discipline, and ffmpeg assembly with deflicker and stabilization. Triggers on timelapse, hyperlapse, interval timer, frame sequence assembly, or deflicker requests.
./install.sh timelapse-hyperlapsename: timelapse_hyperlapse description: Plan and assemble timelapse and hyperlapse videos end to end: interval math for the subject, exposure smoothing, hyperlapse shooting discipline, and ffmpeg assembly with deflicker and stabilization. Triggers on timelapse, hyperlapse, interval timer, frame sequence assembly, or deflicker requests.
Turn a photo sequence (or a plan for one) into a polished timelapse or hyperlapse clip: pick the right interval, keep exposure smooth, stabilize the result, assemble with ffmpeg.
Run bin/timelapse_plan.py --clip 10 --fps 24 --shoot 3600 (clip seconds, playback fps, shoot duration in seconds) to get the frame count and interval. Or solve by hand:
Starting intervals by subject (details in references/interval_subjects.md):
| Subject | Interval | |---|---| | Fast clouds, crowds, traffic | 1-3s | | Sunset, moderate clouds | 3-8s | | Stars | exposure time + write margin | | Construction, plants, slow change | 30s to minutes |
Set shutter to about half the interval for smooth motion (the timelapse version of the 180-degree rule). A 5s interval with a 2.5s exposure needs an ND filter in daylight. Short exposures give crisp, choppy motion; long exposures give creamy blur.
For a hyperlapse, also pick a step distance: 1-2 steps between frames is the common starting point, wider apart in open ground, inches apart in tight spaces. More ground covered per step = faster apparent travel.
Lock everything manual: focus, aperture, shutter, ISO, white balance. Auto anything flickers.
Hyperlapse only: pick one fixed reference point in the subject (a window corner, the tip of a tower) and keep the center crosshair or a viewfinder dot on it for every shot. Walk a straight line; ground lines or two tripod legs on a line keep geometry consistent. Take test frames first and reshoot early mistakes. Never pause mid-shoot under moving clouds (they jump in the final clip).
Flicker has two causes: camera settings that drifted (fix in step 2 next time) and natural light change. Order of operations:
deflicker=mode=pm:size=10 in the build script's filter chain. Keep it conservative; over-correction looks plasticky.bin/timelapse_build.py frames_dir out.mp4 does the full build:
deflicker and tblend=average (cheap motion smoothing between frames).-framerate, libx264, -crf 18, -pix_fmt yuv420p.--stabilize): two-pass vidstabdetect/vidstabtransform with optzoom=1 and an unsharp cleanup, or single-pass deshake if vidstab is missing.--fps 60 --interpolate adds minterpolate for smoother playback (slow on long sequences).For a hyperlapse the shooting discipline (step 2) is the stabilizer; the post pass only removes residue. Run the stabilize pass on the assembled clip.
Full command reference lives in references/ffmpeg_recipes.md.
timelapse_plan report: frames needed, interval in seconds, total shoot time, suggested shutter speed.-pattern_type glob) when filenames are irregular; use %05d sequences only when numbering is clean.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.