How to make a storyboard from video frames
- Step 1Drop the cut onto the tool — Drag your exported review cut (MP4, MOV, MKV, WebM, or AVI) onto the upload zone. It is read locally into FFmpeg.wasm — the file is never uploaded. One file at a time.
- Step 2Choose a storyboard shape — For a tight per-scene review start with 4x4 (16 frames) or 5x5 (25 frames). For a long sequence where you want more coverage, go 6x6 (36) up to the 10x10 max (100). Columns and Rows each accept 1-10.
- Step 3Set Tile width for the room — Default 320px is fine for an on-screen review. For a printed board or detailed comp discussion, push to 640-1280px so each frame holds up when zoomed. Height auto-follows the source aspect.
- Step 4Generate the storyboard sheet — Run it. The tool probes duration, divides the runtime into equal slices, samples one frame per slice, scales each to your tile width, and tiles them into one PNG. Short cuts finish in seconds.
- Step 5Download and annotate — You get a single PNG (
<yourfile>-grid.png). Open it in any image editor or print it to add shot numbers, framing notes, and review marks by hand — the tool does not add captions itself. - Step 6Want one frame per actual shot? — Because sampling is by time, not by cut, run scene-detector to get the real cut points first, then pull those frames with thumbnail-extractor for a true shot-by-shot board.
Storyboard grid shapes for review
Match grid density to the length and granularity of the review.
| Grid | Frames | Use it for |
|---|---|---|
| 4x4 | 16 | Quick composition pass on a single scene or short cut |
| 5x5 | 25 | Standard director review board — good balance of coverage and readability |
| 6x6 | 36 | Longer sequence where you want more sampled moments |
| 10x10 | 100 | Full-runtime map of a long cut (the maximum grid) |
Option behaviour for storyboard output
How each control affects the sheet. Out-of-range values are clamped.
| Control | Range / default | Effect on the board |
|---|---|---|
| Columns | 1-10 / 4 | Frames across each row; with Rows sets total sampled frames |
| Rows | 1-10 / 4 | Number of rows; duration split into cols x rows equal slices |
| Tile width | 120-1280px / 320 | Per-frame pixel width; higher = sharper for print/zoom, larger file |
Tier limits for video tools
File-size and batch limits per plan. No duration cap.
| Tier | Max file size | Files per batch |
|---|---|---|
| Free | 1 GB | 1 |
| Pro | 10 GB | 5 |
| Pro + Media | 100 GB | 50 |
| Developer | 100 GB | Unlimited |
Cookbook
Storyboard recipes for common review situations, with the exact option values.
Per-scene 4x4 composition pass
Reviewing the framing of a single 2-minute scene. A 4x4 at the default tile width gives 16 evenly-spaced stills — enough to read how the shot is built without overwhelming the page.
Options: Columns=4 Rows=4 Tile width=320 Duration=120s -> 16 frames, ~7s apart Output: scene04-grid.png (one PNG)
5x5 director board for a short film
A 10-minute short reviewed as a 5x5 (25 frames) at 480px tiles — a printable board the director can mark up scene by scene.
Options: Columns=5 Rows=5 Tile width=480 Duration=600s -> 25 frames, ~23s apart Output: a large, print-ready storyboard PNG
High-detail comp review at 1280px tiles
When the discussion is about composition, headroom, and lead space, max out tile width so each frame holds up under scrutiny. Use a smaller grid to keep total size sane.
Options: Columns=4 Rows=4 Tile width=1280 Frames=16 PNG width ~ 4 x 1280 = ~5120px Output: very sharp, heavy file for close inspection
Vertical social cut storyboard
A 9:16 reel cut tiles with tall cells. A 3x4 keeps the overall sheet from getting too wide while covering the runtime.
Options: Columns=3 Rows=4 Tile width=360 Frames=12 (each tall, aspect preserved) Output: a vertical-friendly review board
True shot-by-shot board (pipeline)
This tool samples by time, not by shot. For a real one-frame-per-shot board, detect cuts first and extract those frames, then arrange them yourself.
1. scene-detector -> cut timestamps
/video-tools/scene-detector
2. thumbnail-extractor at each cut
/video-tools/thumbnail-extractor
3. lay out the per-shot stills in your editorEdge cases and what actually happens
Grid samples by time, not by shot
By designThe storyboard is an even sample of the runtime, so a cell can land mid-shot or right on a transition. It is not a one-frame-per-scene board. For shot-accurate boards, detect cuts with scene-detector and pull frames with thumbnail-extractor.
No shot numbers or captions on the sheet
Not supportedThe output is a clean mosaic with nothing burned in. Add shot numbers, timecode, or notes yourself after download. Annotation is intentionally left to your image editor or printout.
Duration cannot be read from the file
ErrorIf the container has no usable duration (some intermediate or fragmented exports), the tool throws "Could not determine video duration." Re-export or remux a clean MP4/MOV and try again.
Dense grid on a short scene
ExpectedA 10x10 on a 30-second scene samples every ~0.3s, so neighbouring cells look near-identical. For short scenes a 3x3 or 4x4 gives a more readable spread.
Columns/rows above 10
ClampedEach dimension is clamped to a maximum of 10, so the largest board is 10x10 = 100 frames. Ask for more and it is reduced to 10.
Tile width below 120
ClampedMinimum tile width is 120px; smaller values are raised to keep frames legible for review. The panel caps the high end at 1280px.
ProRes / large intermediate export
PerformanceA heavy mezzanine file is fine within your tier's size limit, but FFmpeg.wasm decodes in-browser, so expect a longer wait than a small H.264 proxy. Reviewing from a smaller proxy export is faster.
Single video at a time
Single file onlyThe tool does not accept multiple files at once. Generate one board, then drop the next cut.
Letterboxed source
PreservedIf the source has baked-in black bars, those bars appear in every tile — the tool does not crop. Crop the source first with video-cropper if you want clean frames.
Very large file on limited RAM
PerformanceBrowser memory bounds how large a file you can comfortably process. Close other tabs for big files; only the sampled frames are decoded, not the whole stream to disk.
Frequently asked questions
Is this a true shot-by-shot storyboard?
Not exactly. It samples frames at equal time intervals across the whole cut, so it is a time-map of the runtime, not one frame per shot. For shot-accurate boards, detect cuts with scene-detector and pull those frames with thumbnail-extractor.
What grid should I use for a director review?
4x4 (16 frames) for a single scene, 5x5 (25) for a short film or sequence. Go denser (6x6 to 10x10) for long cuts where you want more coverage.
Can I add shot numbers or notes automatically?
No — the sheet is a plain mosaic with nothing burned in. Annotate it yourself in an image editor or on a printout after downloading.
What is the output file?
A single PNG named <yourfile>-grid.png. One image with the whole grid, regardless of how many frames you chose.
Will my unreleased cut be uploaded?
No. It is processed entirely in your browser with FFmpeg.wasm. The file never leaves your device, which suits NDA and pre-release review work.
Does it handle vertical reels and square cuts?
Yes. Each tile keeps the source aspect ratio, so 9:16 and 1:1 cuts tile without stretching. The overall sheet shape follows the cell shape.
How sharp will each frame be?
Set by Tile width (120-1280px). 320px is fine on screen; 640-1280px is better for print or zooming into composition detail. Higher widths make a bigger file.
What formats can I drop in?
MP4, MOV, MKV, WebM, and AVI — the common editor and camera exports. No conversion needed first.
How long a cut can I process?
There is no duration limit; only file size matters. Free is up to 1 GB, Pro 10 GB, Pro + Media and Developer 100 GB. A long review cut is fine if it fits your tier's size cap.
Why are some adjacent cells almost the same?
That means the grid is too dense for the clip length — the sampling interval is tiny so neighbouring frames barely change. Reduce columns/rows for short cuts.
Can I print the storyboard?
Yes. Generate at a higher tile width (640-1280px) for a crisp printout, then send the PNG to your printer or drop it into a layout document.
Is it slower on big files?
Yes. FFmpeg.wasm runs on your CPU in the browser, so heavier files take longer. Reviewing from a smaller proxy export speeds it up considerably.
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.