Video Frame Extractor
Pricing
from $1.00 / 1,000 frame extracteds
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
Maintained by CommunityActor 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
| Field | What it does |
|---|---|
| Video URLs | Direct links to video files |
| How to pick frames | interval (every N seconds), count (N evenly spaced) or scenes (scene changes) |
| Seconds between frames | For interval. Default 10 |
| Number of frames | For count. Default 10 |
| Scene change sensitivity | For scenes. 0.1 finds many cuts, 0.6 only hard cuts. Default 0.3 |
| Max frames per video | Hard limit whatever the mode. Default 100 |
| Image format | jpg (default), png, webp |
| Max image width | Shrink wide frames; 0 keeps the original size |
| Max video size (MB) | Larger videos are skipped and not charged. Default 100 |
| Extra request headers | Referer, 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.