Video Frame Extractor avatar

Video Frame Extractor

Pricing

from $1.00 / 1,000 frame extracteds

Go to Apify Store
Video Frame Extractor

Video Frame Extractor

Turn video files into still images. Pick a frame every N seconds, N evenly spaced frames, or one frame at every scene change. Time stamps, image links and video details for each frame. $0.001 per frame + $0.005 per video.

Pricing

from $1.00 / 1,000 frame extracteds

Rating

0.0

(0)

Developer

ensorcelling _melilot

ensorcelling _melilot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Turn video files into still images. Give the Actor direct links to videos and pick how to sample them: a frame every N seconds, a fixed number of evenly spaced frames, or one frame at every scene change. Each frame is saved to Apify storage, and you get a table with the time stamp, image link and size of every one.

Powered by ffmpeg inside the Actor. No browser, no proxies, no login.

Why this one?

  • Three sampling modes. Every N seconds, N evenly spaced frames (first and last moment included), or scene-change detection with an adjustable sensitivity.
  • Ready for thumbnails, review and AI pipelines. JPEG, PNG or WebP, optional max width (never enlarged), exact time stamps (00:01:23.500) and video details (length, size, frame rate, codec) on every row.
  • Fair price. $0.001 per frame plus $0.005 per video. Videos that fail, are too large or give no frames are free.
  • Doesn't die on one bad video. Each video and each frame gets its own status and a plain-language error.
  • Safe by default. Redirects are checked one hop at a time; localhost, private networks and cloud metadata addresses are refused.

What it does not do

It reads direct video file links (MP4, MOV, WebM, MKV, AVI and anything else ffmpeg understands). It does not download from YouTube, TikTok, Instagram or other video sites, and it does not decode DRM-protected or streaming-manifest (HLS/DASH) links. Use videos you have the rights to process.

Input

FieldWhat it does
Video URLsDirect links to video files
How to pick framesinterval (every N seconds), count (N evenly spaced) or scenes (scene changes)
Seconds between framesFor interval. Default 10
Number of framesFor count. Default 10
Scene change sensitivityFor scenes. 0.1 finds many cuts, 0.6 only hard cuts. Default 0.3
Max frames per videoHard limit whatever the mode. Default 100
Image formatjpg (default), png, webp
Max image widthShrink wide frames; 0 keeps the original size
Max video size (MB)Larger videos are skipped and not charged. Default 100
Extra request headersReferer, Cookie etc. for hosts that check them

In scenes mode the first frame of the video is always included, so every video returns at least one image.

Output

One dataset row per frame:

{
"status": "extracted",
"videoUrl": "https://example.com/clip.mp4",
"frameNumber": 3,
"timestampSeconds": 20,
"timestamp": "00:00:20.000",
"imageUrl": "https://api.apify.com/v2/key-value-stores/.../records/v001-f0003.jpg",
"storeKey": "v001-f0003.jpg",
"contentType": "image/jpeg",
"sizeBytes": 18234,
"videoDurationSeconds": 62.4,
"videoWidth": 1280,
"videoHeight": 720,
"videoFps": 29.97,
"videoCodec": "h264"
}

The images are in the run's key-value store under storeKey. A SUMMARY record counts videos, frames and failures. Rows with status failed carry an error that says why.

Pricing

Pay per event:

  • $0.001 per frame extracted (frame-extracted)
  • $0.005 per video processed (video-processed, only when at least one frame was saved)

Example: 20 frames from each of 100 videos costs 100 × $0.005 + 2,000 × $0.001 = $2.50.

Tips

  • Long videos and fine sampling cost more frames. Set Max frames per video to stay in budget; the run also respects the maximum cost you set in Apify.
  • Seeking is fast, so a 2-hour video costs about the same time as a 2-minute one for the same number of frames; scene detection has to read the whole video and takes longer.