To extract a video frame, open a short local file in a browser-based frame extractor, enter the time in seconds where you want the still, and download the result as a PNG without ever uploading the clip. The video stays on your device the entire time: your browser decodes the file, seeks the underlying media element to the chosen timestamp, draws the resulting frame onto a same-size canvas using the standard Canvas drawImage method, and encodes that canvas as a PNG you can save locally. The PNG keeps the video's native pixel dimensions, so a 1920 × 1080 source produces a 1920 × 1080 still — there is no resizing, cropping, sharpening, or filtering in between. This approach suits anyone who needs a quick reference image, a YouTube thumbnail, a slide-ready still, or a quotation graphic from media they own, without installing software, learning a command-line tool, or trusting a remote server with their video. The whole operation is bounded by the tool's safety limits, which cap input files at 500 MiB and five minutes of footage, with no more than 4096 pixels per side or 3840 × 2160 pixels in total area.

When You Actually Need to Extract a Single Frame
A single still frame solves one focused job: turning one moment inside a video into a portable image you can paste, share, upload, or print. The most common reasons people search for how to extract a video frame are practical and small in scope. You might want a thumbnail that better represents your video than any auto-generated preview. You might be writing a tutorial and need a clean screenshot of the moment a menu opens, a setting changes, or a button appears. You might be designing a slide deck and want to quote a specific scene, or pulling a still for a press kit, a social post, or a blog header. Designers sometimes use single frames as references for illustration, layout, or color palettes. Reviewers use them to flag exact moments in feedback. In every case, you do not need the entire video — you need one image, and you need it quickly, at native resolution, without round-tripping through editing software.
What Video Frame Extractor Does in the Browser
Video Frame Extractor is a single-purpose browser tool that pulls one PNG still from a short local video. The processing pipeline is straightforward: the browser reads the chosen file as a media element, parses its reported duration, accepts a timestamp you enter in moments, seeks the media element to that timestamp, waits for the seek to complete, draws the resulting decoded frame onto a same-size canvas, encodes that canvas as a PNG, and exposes the PNG as a local download. None of those steps require a server, an upload, or a re-encode of the video. The original file is not modified, and the resulting PNG carries the same pixel dimensions as the frame the browser decoded — a 1280 × 720 source produces a 1280 × 720 still, and a 3840 × 2160 source produces a 3840 × 2160 still.
Because the tool only handles a single frame at a time and never resizes, crops, sharpens, interpolates, or applies filters, the output is a faithful snapshot of what the browser sees at the requested moment. The output filename includes the selected time, so a still at 12.5 seconds is saved with that timestamp in the name. Transparency in the PNG is preserved only when the browser's decoded video frame carries an alpha channel; most MP4 and WebM videos do not, so the resulting PNG usually has a solid background. If a decode, seek, draw, or encode step fails, the tool reports the failure rather than producing an empty download, which protects you from silently saving a black or broken image.
Extract a Video Frame Step by Step
The extraction workflow has three concrete steps, and each one has a single, specific job. Take your time on the first step, because the duration that loads determines the valid range for the timestamp you enter later.
- Choose one supported local video and wait for its duration and preview to load. Pick a file from your computer using the file input. The supported formats are MP4, WebM, MOV, M4V, and Ogg, with the same shared safety caps the rest of the site's video tools use: up to 500 MiB and five minutes of footage, no more than 4096 pixels per side, and no greater than 3840 × 2160 pixels in area. After you pick the file, wait until the preview appears and the tool reports the video's duration. Until then, the tool does not yet know how long the clip is, so the time field cannot validate your entry.
- Enter a frame time between zero and the displayed duration, including decimals when needed. Type the time almost instantly where you want the still. Whole numbers work for ordinary moments (12 for the 12-second mark). Decimals work for finer placement (12.5 for halfway between 12 and 13 seconds, 0.083 for roughly the first frame at 12 fps). The field accepts fractional seconds from zero through the reported duration, so you can place the still anywhere along the timeline. If you type a value outside that range, the tool rejects the entry rather than producing a frame from the wrong spot.
- Select Extract PNG frame, verify the still, and download the local PNG. Click the extract button. The browser seeks to your requested time, waits for the seek to complete, draws the decoded frame onto a canvas, encodes the canvas as a PNG, and offers the result as a download in the same tab. Open the PNG before closing the tool to confirm it is the frame you wanted — eye-line, caption text, exposure, and timing all matter. The filename includes your chosen time so you can save it without renaming.
Time Entry, Decimals, and What "Exact" Really Means
The time field accepts a media timeline position in moments, not a numbered source frame. That distinction matters more than it sounds. A video at 30 frames per second has frames numbered 0, 1, 2, 3, and so on, each occupying one-thirtieth of a second. When you type 12.5, you are asking the browser to seek to the 12.5-second mark on the media timeline, not to find frame 375. How close the browser can get depends on the presence of keyframes, the codec's GOP structure, edit lists, variable frame rates, timestamp rounding, and codec-specific seek behavior. In practice, the browser lands on the nearest decoded frame, which is usually very close to the time you asked for but is not always the exact source frame you would have counted by hand.
The MDN documentation for the HTMLMediaElement currentTime property describes this behavior: setting currentTime asks the user agent to seek to that media time, but the underlying decoder picks the closest available sample. For most everyday uses — thumbnails, slide stills, social graphics, blog imagery — that precision is more than enough. For frame-accurate editorial work, color-managed output, HDR pipelines, alpha workflows, batch extraction, exact frame numbers, or long footage, the recommendation in the tool itself is to reach for a dedicated desktop application instead. The displayed time records the requested position, not the packet timestamp of the frame the decoder actually returned.
One practical tip: if you cannot quite land on the frame you want, nudge the time by a tenth of a second at a time (12.5 → 12.4 → 12.3) and re-extract. Because the decoder picks the nearest keyframe, small adjustments sometimes cross a keyframe boundary and produce a visibly different result. Decimal entry is your friend here, and the field accepts it natively.
Supported Formats, Codecs, and File Limits
Video Frame Extractor accepts five container formats — MP4, WebM, MOV, M4V, and Ogg — but a container is only the outer wrapper. The actual audio and video are encoded with specific codecs inside that wrapper, and the browser must support those codecs for the file to open at all. This is the single most common reason a file fails to load, and it is worth understanding before you start.
| Container | Typical codecs inside | Why a file might still fail to open |
|---|---|---|
| MP4 | H.264 video, AAC audio | Codecs inside the MP4 container must be supported by the browser; the extension alone does not guarantee playback. |
| WebM | VP8, VP9, or AV1 video; Opus or Vorbis audio | Codecs inside the WebM container must be supported by the browser; the extension alone does not guarantee playback. |
| MOV | Often H.264 or ProRes video, AAC audio | Codecs inside the MOV container must be supported by the browser; the extension alone does not guarantee playback. |
| M4V | H.264 video, AAC audio | Codecs inside the M4V container must be supported by the browser; the extension alone does not guarantee playback. |
| Ogg | Theora video, Vorbis audio | Uncommon container; failure usually means the codec inside is missing. |
Beyond the codec question, the tool applies the same shared safety policy as the rest of the site's video tools to keep browser decoding predictable:
| Bound | Limit |
|---|---|
| Maximum file size | 500 MiB |
| Maximum duration | 5 minutes (300 seconds) |
| Maximum pixels per side | 4096 px |
| Maximum resolution | 3840 × 2160 px |
Files outside any of those bounds are rejected up front rather than mid-extraction, which keeps the browser from choking on oversized input. If your file is longer than five minutes, trim it first with a local trimmer; if it is larger than 500 MiB, compress it locally; if you need a different aspect or pixel size, resize it before extracting. None of those steps require uploading the source.
Limits and When to Switch to a Desktop Tool
The browser pipeline is fast, local, and surprisingly capable, but it is not a substitute for a full desktop video editor. Knowing where the line sits helps you pick the right tool the first time and avoid wasting effort on a workflow that cannot finish the job. Within its bounds — 500 MiB, five minutes, 4096 pixels per side, 3840 × 2160 in area — Video Frame Extractor produces a faithful, native-dimension PNG from one chosen timestamp. It does not batch-extract, it does not rename a sequence of frames, it does not apply timestamps or overlays, and it does not give you frame-accurate control over numbered source frames.
Switch to a dedicated desktop tool, or to a command-line workflow like the FFmpeg commands documented in our four-command guide, when you need any of the following:
- Batch extraction of every frame, every Nth frame, or a range of frames from a long video
- Exact frame numbers rather than approximate timeline positions
- HDR or color-managed output with a known color space (Rec. 709, Rec. 2020, sRGB)
- Alpha-aware workflows where the PNG must preserve a true transparent background
- Footage longer than five minutes, larger than 500 MiB, or in a codec the browser cannot decode
- Outputs other than PNG, or PNGs with applied filters, overlays, or compositing
For everything inside those limits, the browser workflow is faster: no install, no command line, no upload, and no waiting for a server to finish. You open the page, pick the file, type the time, and download the still. The whole process is the shortest path between "I need that frame" and a PNG on your disk.
Once you have the PNG, treat it like any other still image: open it in your image editor, drop it into a slide, paste it into a document, or post it wherever the still needs to live. Because the file is a normal PNG, there are no special steps or plugins to use it downstream. If you need a different frame, return to the tool, adjust the time, and extract again — each run produces a fresh PNG with your new time baked into the filename.
For a deeper look, see How Do I Fix a Frame Extraction Result That Looks Wrong.