Ken Burns Effect from a Photo

Pick a photo and a motion — it's animated into a short video clip in your browser, nothing is uploaded.

Try:
Animated clip

Animate a photo with a Ken Burns move

Pick a single still image, choose the motion, how long the clip runs and the output size, and get back a short MP4 that slowly pans and zooms across the picture — the classic "Ken Burns" documentary look. Everything runs with ffmpeg inside your browser tab: nothing is uploaded, and the tool is free.

Under the hood the photo is scaled to cover the output frame at a 2× supersample (which keeps the movement smooth instead of stair-stepping), then ffmpeg's zoompan filter walks a straight-line path across it — pushing in, pulling back, or gliding sideways — and encodes the frames to H.264 (libx264, yuv420p, +faststart) so the clip plays everywhere.

Motion, length and size

Worked example

You have beach.jpg, a wide landscape photo. Load it, leave Motion on Zoom in, set Duration to 7 and Zoom amount to 1.3. You get beach-kenburns.mp4 — a 7-second 1280 × 720 clip that eases from the full frame into a gentle close-up. Want the opposite reveal? Switch Motion to Zoom out. Making a vertical reel? Set Width 1080 and Height 1920. The page URL /tools/video-ken-burns/?direction=zoom-out&duration=5&zoom=1.5&width=1280&height=720 deep-links to a pre-filled zoom-out reveal.

Notes and limits

FAQ

Is my photo uploaded to a server?

No — ffmpeg runs inside your browser tab, so the image never leaves your device. Nothing is uploaded and nothing is stored.

What is the "Ken Burns" effect?

It's the slow pan-and-zoom applied to still photos in documentaries — named after filmmaker Ken Burns, who used it to bring life to archival stills. Instead of a static picture, the camera appears to drift and push across it, so a single photo fills several seconds of video.

Why does my pan look like it isn't moving?

A pan slides the frame within the zoomed-in picture, so it needs room to travel. At a Zoom amount of exactly 1.0 there is no off-screen area to move into, so the frame stays put. Raise the zoom to 1.21.5 and the pan will glide as expected.

What size and length should I use?

1280 × 720 at 5 seconds is a good default for a web clip. For a vertical phone story use 1080 × 1920; for a square post use 1080 × 1080. Keep the duration between about 3 and 8 seconds — long enough to read as motion, short enough to stay lively. The maximum is 30 seconds.

What image formats can I use?

Any still image ffmpeg can read — JPEG, PNG and WebP are the common cases. The output is always an H.264 MP4, which plays in every browser and on phones. The input file is capped at 12 MB.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool video-ken-burns 'url=https://example.com/input' 'direction=zoom-in' 'duration=5' 'zoom=1.3' 'width=1280' 'height=720' 'fps=30'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/video-ken-burns/?url=https://example.com/input&direction=zoom-in&duration=5&zoom=1.3&width=1280&height=720&fps=30

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.