Video Thumbnail

Take one frame out of a video and save it as a still image, without the file leaving your machine.

Runs on your deviceVideoWorkingNo account needed

What this tool does

Video Thumbnail loads your file into an off-screen video element, seeks to the moment you choose, and paints that single frame onto a canvas at the width you ask for. The clip itself is never re-encoded — one frame is read and one still image is written — so the wait is whatever the browser needs to open the file and seek, not the running time of the video.

There are three ways to choose the frame. A frame 10% in is the default, and it exists to skip the black frame or the logo card most videos open on; it is arithmetic on the duration, not a judgement about what is in the picture, so it will not hunt down the most flattering shot for you. The middle frame is simply half the duration. Both of those depend on the browser reporting a duration at all: for the occasional stream-recorded file where it never does, the arithmetic falls back to zero and you quietly get the opening frame, which the read-out gives away by listing the duration as 0:00.0. A specific time takes a timestamp written as seconds, mm:ss or hh:mm:ss, and a time past the end of the clip is pulled back to just before the final frame rather than failing outright.

The limit worth knowing before you start is decoding, because the browser has to be able to play the file for any of this to work. MP4 carrying H.264 is the dependable case and WebM works in current browsers; MOV opens only when it holds H.264 or HEVC, so ProRes and other editing codecs will not; MKV needs VP8, VP9 or AV1 inside it; and AVI, WMV, FLV, MPG, TS and RM do not open at all. Those last ones need Convert Video, which runs on the OmniKitly processing service, before a frame can be taken here. The width control has a limit of its own: it only ever shrinks, so a 640-pixel-wide source stays 640 pixels wide however high you set the number.

How to use it

  1. Choose the video. Add a single clip or a whole batch. Each is decoded and thumbnailed in turn, and every video produces its own image, named after the original with -thumb added before the extension.
  2. Pick the frame. A frame 10% in, the middle frame, or a timestamp you type yourself as seconds, mm:ss or hh:mm:ss. Anything that is not a time is rejected with an example of what to write instead.
  3. Set the format and the size. JPG, PNG or WebP. The quality slider runs from 40 to 100 and applies to JPG and WebP only, since PNG is lossless. Leave the width at 0 to keep the video's own resolution.
  4. Save the image. The read-out names the timestamp used, the source frame size, the output size and the file size, so you can see at a glance whether you landed where you meant to. In a batch every image is still produced, but that read-out is only rewritten for the last clip in the queue.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Setting a poster image on a web player

A video element on a page shows its first frame until playback starts, and that frame is frequently black. Export a frame you actually chose and point the poster attribute at it.

Producing a cover frame for an upload

Platforms that want a still before they will accept a video usually specify a width. Export at that width and the aspect ratio follows from the source without any cropping.

Illustrating a bug report

A frame taken at the exact second the glitch appears tells whoever picks up the ticket more than a paragraph describing it ever will.

Comparing takes in a folder

Pull the middle frame from each clip in one pass and judge framing and exposure as a row of images instead of scrubbing through every file.

Questions

Is my video uploaded?
No. The file is decoded by this browser tab and the frame is drawn onto a canvas here, so neither the video nor the image it produces is transmitted, logged or stored. A two-gigabyte clip costs no upload time because there is no upload. The page itself does ping the OmniKitly server once a session to add one to this tool's use counter, and that request carries the tool's name and nothing about your file.
Why will my file not open?
Because this leans on the browser's own decoder rather than a media library on a server. Nothing is screened in advance — the file is handed over, and an AVI, WMV, FLV, MPG, TS or RM is only turned away once the decoder has refused it, at which point the message names that container and points you at Convert Video. An MKV holding H.264 fails the same way, and so does a MOV carrying ProRes. A file that has not opened within 30 seconds is given up on and reported the same way.
Does this write the poster frame into the video file?
No. The output is a separate image file sitting beside your video. Embedding a cover frame into the container is a metadata write, and this tool does not do it — use the image with your player's poster attribute, or hand it to whichever platform asked for a still.
Why is my thumbnail smaller than the width I set?
Frames are never enlarged. Ask for a width above the video's own and the native size is kept instead, because upscaling a frame invents detail that was never recorded. The source frame size and the output size are reported as separate labels beside the result, so the difference is visible.
Which image format should I choose?
JPG for photographic footage and the smallest file. PNG for screen recordings, title cards and flat colour, where the lossless encoder wins and the quality slider has no effect. WebP when you want JPG-like sizes with cleaner edges and know your destination accepts it.
Can I get several frames from one video?
Not here — this returns one frame per file. Extract Frames does the multi-frame job properly, taking an interval, a frame rate or a fixed count spread evenly across a range.
Is the frame exactly the one at the timestamp I typed?
It is the frame the browser presents after seeking to that point, and decoders resolve a seek to the nearest frame they can display. On a long-GOP file that can land a fraction of a second either side of the number you asked for, and what is reported back is the time that was requested.

Related tools