Go to Studio

Extract Video Frame

The Extract Video Frame node extracts a single frame from a video as an image, with options for frame selection, output format, and resizing.

What does the Extract Video Frame node do?

The Extract Video Frame node takes a video and extracts a single frame as an image. You can choose which frame to extract — the first, the last, at a specific timestamp, or at a percentage of the video duration.

Common use cases:

  • Generating thumbnails from videos for content previews or social media posts
  • Extracting a specific frame from a product demo video for use in documentation
  • Capturing a key moment from an AI-generated video for further image processing (Image to Image, Image to Text)
  • Creating cover images from video content stored in Google Drive or Static Video nodes

Quick setup

Add the node to the canvas

Open the Node Library, go to Tools > Video Processing, then drag and drop the Extract Video Frame node onto your workspace.

Connect a video source

Connect a single video source to the input. The node accepts video from Static Video, File input, Google Drive Reader, Image to Video, Video Merger, and other video-producing nodes. Note: only one video at a time — arrays of videos are not accepted.

Choose the frame to extract

Open the settings and select a Frame Mode:

  • First — extracts the very first frame
  • Last — extracts the very last frame
  • Timestamp — extracts the frame at a specific time (enter as HH:MM:SS or use the slider)
  • Percentage — extracts the frame at a percentage of the video’s duration

Configure output options

Choose the output format (PNG, JPEG, or WebP) and optionally resize the image.

Connect the output

Connect the output to the next node. The extracted image is available as a JSON object with the image URL, format, and resolution metadata.

Configuration parameters

Required fields

Name string required default: Extract Video Frame

Node name — A label to identify this node on the canvas.

Description string required

Node description — A short description of what this extraction does.

Frame Mode select required default: last

Frame selection mode — How to choose which frame to extract:

  • First — The very first frame of the video
  • Last — The very last frame of the video
  • Timestamp — A frame at a specific time position
  • Percentage — A frame at a percentage of the total duration

Conditional fields

Timestamp string

Timestamp — The time position to extract (format: HH:MM:SS or seconds). Only shown when Frame Mode is “Timestamp”. When the video duration is detected (e.g., from a Static Video node), a slider is available for easier selection.

Percentage number

Percentage — The position as a percentage of the video duration (0–100). Only shown when Frame Mode is “Percentage”. For example, 50 extracts the frame at the midpoint.

Optional fields

Output Format select default: png

Output format — The image format for the extracted frame:

  • PNG — Lossless, best quality, larger file size
  • JPEG — Compressed, smaller file size, good for photos
  • WebP — Modern format, good balance of quality and size
Resize Mode select default: none

Resize mode — How to resize the extracted frame:

  • None — Keep the original video resolution
  • Width — Resize to a specific width (aspect ratio preserved)
  • Fit — Fit within specific width and height dimensions
Resize Width number

Width (px) — Target width in pixels (0–8192). Only shown when Resize Mode is “Width” or “Fit”.

Resize Height number

Height (px) — Target height in pixels (0–8192). Only shown when Resize Mode is “Fit”.

Warning

Dimensions above 4K (3840x2160) may increase processing time significantly and are rarely needed. A warning is displayed in the settings when large dimensions are set.

What does the node output?

The node outputs a JSON array with a single image object:

[
  {
    "image": "frame_001.png",
    "mimeType": "image/png",
    "frameMode": "timestamp",
    "outputFormat": "png",
    "resolution": "1920x1080",
    "timestamp": "15.2s"
  }
]
image string

The filename of the extracted frame image.

mimeType string

The MIME type of the output image (e.g., image/png, image/jpeg, image/webp).

frameMode string

The frame selection mode that was used (first, last, timestamp, or percentage).

resolution string

The resolution of the extracted frame (e.g., 1920x1080).

The output image can also be downloaded directly using the node’s download button.

Usage examples

Example 1: Generate a video thumbnail

You have a product demo video and want to extract a frame at the 3-second mark for use as a thumbnail.

Configuration:

  • Frame Mode: Timestamp
  • Timestamp: 00:00:03
  • Output Format: JPEG
  • Resize Mode: Width → 640px

Example 2: Analyze an AI-generated video frame

You generate a video with Image to Video and want to analyze a specific frame with Image to Text.

Workflow:

  1. Image to Video — Generate a video from an image
  2. Extract Video Frame — Extract the last frame
  3. Image to Text — Analyze the extracted frame with AI

Configuration:

  • Frame Mode: Last
  • Output Format: PNG
  • Resize Mode: None

Example 3: Extract frames at different positions in a Loop

You want to create multiple thumbnails from different positions of a single video.

Workflow:

  1. Static Video — Upload the source video
  2. Create List — Define percentages: 10, 25, 50, 75, 90
  3. Loop — Iterate over each percentage
  4. Extract Video Frame — Extract frame at {{percentage}}% for each iteration

Best practices

Tip

Use “Last” frame mode for AI-generated videos. Videos from Image to Video often have the best visual quality on the last frame, as it represents the final state of the animation.

Tip

Use JPEG for thumbnails when file size matters (social media, emails). Use PNG when you need transparency or lossless quality. Use WebP for the best compression-to-quality ratio.

Warning

This node processes one video at a time. If you need to extract frames from multiple videos, use a Loop node to iterate over each video individually.

Common issues

The node rejects my input with 'only processes one video at a time'

Cause: The connected node outputs an array of videos (e.g., Static Video with multiple files, or a Loop output).

Solution: Extract Video Frame only accepts a single video. Use a Loop node upstream to iterate over each video, or use a JSON Path Extractor to select one video from the array.

The extracted frame is black or blank

Cause: The timestamp or percentage points to a moment in the video with no visual content (e.g., before the video starts rendering or after a fade-to-black).

Solution: Try a different frame mode or adjust the timestamp/percentage. Use “First” or “Last” mode to verify the video has visual content, then fine-tune the position.

The timestamp slider doesn't appear

Cause: The video duration couldn’t be detected. The slider only appears when the source is a Static Video node with known duration.

Solution: You can still type the timestamp manually in HH:MM:SS format. The slider is a convenience feature, not a requirement.

How does it fit into a workflow?

Extract Video Frame is typically used to convert video content into images for further processing:

graph LR
    Video[Video Source] --> Extract[Extract Video Frame]
    Extract --> Process[Image to Text / Image to Image]