How to create a video contact sheet
Select a video and let its duration and dimensions load. A video contact sheet takes regular samples from a chosen interval and arranges them into one image, read left to right and then top to bottom. The grid is a visual summary rather than a moving preview. Decide how much of the clip matters before selecting rows and columns: covering an hour with nine pictures answers a different question from covering a two-second action with the same grid. Preview the source when available, generate the sheet, and inspect the image before downloading it.
- 1
Choose a meaningful coverage range
Wait for a valid duration, then enter start and end times inside the video. The end must be after the start. Play or seek through the original to decide whether a full-clip overview or a narrower sequence will be more useful.
- 2
Set layout and time references
Choose rows, columns, cell width, aspect ratio, and spacing. Enable timestamp labels for nominal source positions, or omit them for a clean visual arrangement. The settings show the resulting image dimensions, sample count, and approximate time spacing.
- 3
Inspect the grid and export
Generate the image, check its chronological order and readability, then download JPG or PNG. If a key action is missing, narrow the range or increase the sample count. Use the original player to inspect exact frames suggested by the sheet.
Coverage and sampling are editorial choices
A folder of thumbnails is awkward to scan, attach, print, or compare. A single sheet keeps the sequence visible together and makes it easier to identify broad changes in subject, framing, lighting, or interface state. This tool uses time-based sampling instead of trying to guess the best scenes. Equal spacing gives predictable coverage, but it can miss a very short event between samples. A repeated shot or static interview may yield similar cells even when the tool is working correctly. The grid is not scene detection or a complete record of every frame.
More cells trade space for coverage. A six-by-six grid includes more moments than a three-by-three grid, yet each thumbnail may become difficult to read when the final sheet is scaled to a chat window or slide. Larger cell widths improve inspection at full size but increase the output dimensions and processing cost. A narrower time interval often provides a more informative result than the largest possible grid. Keep the source alongside any catalog entry so reviewers can return to motion, audio, and context that a static overview cannot communicate.
Grid, picture, and export settings
Rows and columns each range from 1 to 6, for at most 36 samples. Cell width is 160 to 480 pixels; cell shape is 16:9, 4:3, or square. The picture fits within that shape with black letterboxing rather than being cropped to fill it. Small sources may be enlarged to fit the chosen cell. Spacing from 0 to 32 pixels is used between cells and around the sheet. White or black sets the sheet and label-strip background. Enabled timestamps add a 24-pixel strip under every thumbnail and show hours, minutes, seconds, and milliseconds. They mark nominal source sample positions, not verified frame timecodes. Sampling begins at the selected start, with spacing equal to range duration divided by cell count; the exact end is not a sample. Sparse or variable-frame-rate sources can repeat a nearby frame, and a held last picture fills sparse or very short ranges. JPG quality is adjustable from 60 to 100, initially 90; PNG has no JPEG quality setting.
Useful contact-sheet workflows
Read the image like an index, not a transcript
Open the downloaded image at its actual resolution and verify the start, progression, and last sampled moment. Look for readable faces, interface text, framing changes, and any black bars caused by the selected cell shape. A white or black label strip should provide enough contrast for its timestamp. The order runs across a row before continuing to the next one. Compare a few labeled positions with the original player, allowing for nearby decoded frames and variable timing. A contact sheet does not preserve sound, subtitles as separate tracks, camera motion, or what happened between its samples.
- Narrow the range before adding more cells when the important action occupies only a small part of a long video.
- Choose enough cell width to read meaningful details; a dense grid of tiny images is not necessarily more useful.
- Treat timestamp labels as sampling references and confirm exact moments in the source player.
Local indexing, with visible-content responsibilities
FFmpeg decodes and tiles the selected frames inside the browser, then Canvas adds optional labels and encodes the downloadable image. No ordinary media upload or remote review job is required. This suits internal captures, private camera footage, rough edits, and support materials that should remain on the device during processing. Engine loading still uses the network, and long or high-resolution sources require memory and time. Keep the tab open until the image is ready; cancel or reset when abandoning a job.
A contact sheet can reveal many sensitive moments at once. Faces, names, notifications, account identifiers, locations, and confidential screens visible in a sampled frame remain visible in the output. Optional timestamps also disclose where in the source those images came from. The export does not automatically anonymize or blur anything. Review each cell before sharing and follow the permissions and retention rules for the source. Removing a label changes the image presentation, not the underlying privacy implications of its pictures.
Video contact sheet examples
Create a three-by-three JPG overview of a screen demonstration for a support handover.
Use a square two-by-four grid with a black background to compare a selected portion of portrait footage.
Export a PNG grid without labels for a presentation, or keep labels for a chronological media catalog.
What a thumbnail grid cannot replace
Use a timeline editor or single-frame extractor for exact frames, selective scene picking, full-resolution stills, and forensic or legal analysis. This page makes one sheet from one continuous range, not a ZIP of individual frames, a multi-video catalog, or a scene-detection report. It requires a decodable video track and a finite duration. Audio-only files, damaged media, and unsupported codecs cannot provide a useful grid. Very large sources can exceed browser memory even though the sheet layout stays below 4096 pixels per side. PNG preserves the generated sheet pixels without JPEG loss, but it does not restore detail lost by resizing or the original video codec. Decoding can begin before the selected range, so a late start does not necessarily make a long source fast to process.
- Use single-frame extraction for a precise poster, full-resolution still, or frame-accurate editorial decision.
- Watch the original for dialogue, motion, brief events, accessibility review, or evidence requiring complete coverage.
Video contact sheet questions
Are the timestamp labels exact frame timecodes?
They are nominal sampling positions measured from the source timeline. Variable frame rates and sparse frames can select or repeat a nearby decoded picture. Confirm a precise edit point in the source video rather than treating the label as frame-accurate evidence.
Why do some cells look identical?
The scene may be static, or the selected range may contain fewer distinct frames than grid slots. Time-based sampling can repeat available pictures. Try a longer or different range, or reduce the number of cells.
Does the grid crop the pictures?
No. Each picture is fitted inside the selected cell shape and padded with black where needed. Choose a shape closer to your footage if you want less letterboxing; this page does not provide per-cell crop editing.
Should I choose JPG or PNG?
JPG is useful for compact photographic overviews and has an adjustable quality setting. PNG avoids additional JPEG loss around text and labels but can be larger. Compare the downloaded candidate at the size the recipient will use.