How to extract frames every second for a storyboard
- Step 1Drop in the edit or cut — Load your MP4/MOV/MKV/WebM/AVI. It stays in the browser tab — good for unreleased projects. One file per run.
- Step 2Set the interval to 1 second for a per-second board — Enter
1in the Interval (seconds) field for one frame per second. For a longer cut where per-second is too many frames, bump to 2–5s to thin the sequence while keeping shot coverage. - Step 3Choose JPG or PNG — JPG is compact and great for a board with many frames. PNG is lossless — choose it if you'll annotate heavily or print at large size. JPG is fixed at
-q:v 2, PNG at-q:v 0. - Step 4Run the extraction — FFmpeg.wasm decodes the clip and writes one frame per interval. Longer edits and a 1s interval mean more frames and a longer run.
- Step 5Download and lay out the board — You get
<yourvideo>-thumbnails.zipwith stills in shot order. Import into your slide tool, doc, or board software and arrange them — the sequential names keep them ordered. - Step 6Want one stitched sheet instead of loose frames? — If you'd rather have a single contact-sheet/storyboard image (a grid of frames in one file), use frame-grid-maker. To storyboard only the cut points, generate them with scene-detector first.
Interval choice for storyboards
Per-second is the classic storyboard density; widen the interval to thin long cuts. Frame count ≈ ceil(duration ÷ interval).
| Use case | Interval | Density |
|---|---|---|
| Action/fast-cut sequence | 1s | One still per second — tightest board this tool offers |
| Dialogue / slower scene | 2–3s | Captures shot changes without flooding the board |
| Long-form review | 5–10s | Overview of an entire long edit at a glance |
| Feature-length skim | 30–60s | One frame per 30–60s for a high-level pass |
This tool vs. a stitched contact sheet
Pick the right tool: loose frames here, or one composited image with frame-grid-maker.
| Need | Use this tool | Use frame-grid-maker |
|---|---|---|
| Individual frame files to annotate/print | Yes | — |
| One single image grid of frames | — | Yes |
| Even time interval (every N seconds) | Yes | Layout-driven, not interval |
| Frames into slides in shot order | Yes (sequential names) | One image, not a sequence |
Cookbook
Storyboard-oriented interval recipes with the FFmpeg command the tool runs. Counts assume even spacing across the clip.
Per-second board of a 2-minute scene
A short scene you want to study beat by beat. One frame per second gives 120 stills — a thorough storyboard.
Settings: interval = 1, format = jpg FFmpeg: ffmpeg -i scene.mp4 -vf fps=1/1 -q:v 2 frame_%04d.jpg Result: scene-thumbnails.zip frame_0001.jpg ... frame_0120.jpg (~120 stills)
Thin a 15-minute edit to a reviewable board
Per-second on 15 minutes is ~900 frames — too many for a review. A 3-second interval keeps coverage while staying skimmable.
Settings: interval = 3, format = jpg FFmpeg: ffmpeg -i edit.mp4 -vf fps=1/3 -q:v 2 frame_%04d.jpg Result: ~300 stills, shot order preserved
PNG board for large-format printing
The board will be printed at A3 and annotated. Lossless PNG keeps detail crisp under enlargement.
Settings: interval = 2, format = png FFmpeg: ffmpeg -i cut.mov -vf fps=1/2 -q:v 0 frame_%04d.png Result: lossless stills for print
Feature-length high-level pass
A 90-minute edit. One frame per minute gives ~90 stills for a structure-level review without thousands of frames.
Settings: interval = 60, format = jpg FFmpeg: ffmpeg -i feature.mp4 -vf fps=1/60 -q:v 2 frame_%04d.jpg Result: ~90 stills — one per minute
Storyboard just the cuts, not every second
If you only want frames at scene boundaries, detect cuts first, then this tool is the wrong fit for cut-only frames.
Step 1 — scene-detector → list of cut timestamps
Step 2 — for an even-interval board, use this tool;
for cut-only frames, sample around each cut
(trim to each cut, extract at interval 1)
This tool always samples on a clock, not on cuts.Edge cases and what actually happens
Per-second on a long edit produces a huge ZIP
Expectedinterval 1 on a 30-minute cut is ~1,800 frames. That's slow to run and unwieldy to review. Raise the interval to 3–5s for a board that's still useful but far lighter.
Frames are on a clock, not on shot cuts
By designThe tool samples every N seconds; it doesn't align to scene boundaries, so a still can land mid-action between two shots. To storyboard at the cuts, find them with scene-detector first.
You wanted a single board image, not loose frames
Wrong toolThis outputs individual files in a ZIP. For one stitched contact-sheet/storyboard image, use frame-grid-maker.
Frames too large for slides
By designStills are native resolution — a 4K edit gives 4K frames, which bloats slide decks. There's no resize here; downscale the edit first with video-resizer or shrink images in your slide tool.
Edit exceeds the Free 1 GB cap
Rejected over limitA long high-bitrate edit can be over 1 GB. Trim it with lossless-trimmer to a section, or upgrade for a higher size ceiling (10 GB Pro, 100 GB Pro-media/Developer).
Browser memory exhausted on thousands of frames
Memory limitHolding and zipping thousands of native-resolution stills can run the tab out of memory, especially on mobile. Widen the interval or storyboard the cut in sections.
Interval set below 1 second for a denser board
ClampedThe minimum interval is 1 second — no sub-second per-frame storyboard is possible here. One frame per second is the densest sequence.
Run fails on an unusual container
Decode errorFFmpeg.wasm can't read every exotic or corrupt container/codec; the run fails with a log tail. Remux to MP4/MKV and retry.
Frequently asked questions
How do I get one frame per second?
Set the Interval (seconds) field to 1. The tool runs fps=1/1, writing one still per second across the whole clip into a ZIP.
Can I get more than one frame per second?
No — 1 second is the minimum interval. For a denser storyboard you'd need a different sampling approach; this tool's tightest sequence is one frame per second.
Does this make the storyboard layout for me?
No. It exports individual frame files in shot order. For a single stitched contact-sheet/storyboard image, use frame-grid-maker. For loose frames you arrange yourself, this tool is right.
What resolution are the storyboard frames?
Native source resolution — a 1080p edit gives 1080p stills. There's no resize control; downscale the video first with video-resizer if you need smaller frames.
Will the frames stay in shot order?
Yes. Filenames are zero-padded and sequential (frame_0001, frame_0002, …), so they sort correctly in any file browser, slide tool, or doc.
Can I storyboard only the scene cuts?
Not directly — this tool samples on a fixed time interval, not at cuts. Use scene-detector to find cut timestamps, then extract around them if you want cut-aligned frames.
JPG or PNG for a storyboard?
JPG for a normal on-screen board with many frames; PNG if you'll print large or annotate heavily and want lossless detail.
Is there a length limit on the edit?
No minutes cap — the limit is file size (1 GB free, up to 100 GB on paid tiers). You can storyboard a feature-length edit, though you'll want a wider interval to keep frame count sane.
Is my unreleased project uploaded?
No. Everything runs locally on FFmpeg.wasm in your browser — the file never leaves your machine, so confidential cuts stay private.
How many frames will I get?
Roughly ceil(duration ÷ interval). A 5-minute clip at interval 1 is ~300 frames; at interval 5 it's ~60. Use a wider interval to reduce the count.
Can I process several scenes at once?
One video per run. Export each scene as its own clip and run them individually; each produces its own ZIP.
Why did extraction fail?
Usually an unsupported codec or a corrupt/exotic container. The error includes FFmpeg's log tail. Remux to MP4/MKV and try again; a file with no video track yields no frames.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.