video-frames fps limit: 24 frames, fps up to 2, what it covers
Sume video-frames takes fps from just above 0 up to 2 and caps each call at 24 frames at mid-bin times. Table of sample times and the span 24 frames reach.

On Sume's video-frames, fps must be above 0 and at most 2, and every call returns at most 24 frames. Samples sit at the middle of each bin, at 0.5/fps, 1.5/fps and so on (Video frames). So 24 frames at 2 fps cover 12 seconds of clip, and a slower rate stretches the same 24 frames across more of it.
Sample times and span
The span column is 24 divided by fps, my arithmetic from the mid-bin rule.
| `fps` | First three sample times (s) | Span of 24 frames |
|---|---|---|
| 2 | 0.25, 0.75, 1.25 | 12 s |
| 1 | 0.5, 1.5, 2.5 | 24 s |
| 0.5 | 1, 3, 5 | 48 s |
| 0.2 | 2.5, 7.5, 12.5 | 120 s |
| 0.1 | 5, 15, 25 | 240 s |
Choosing between fps and at
Send exactly one of them; both together, or neither, is a 400. Use fps for an even contact sheet, and at[] when you already know the moments, for example from a transcript.
curl -X POST https://api.sume.com/v1/video-frames \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: sheet-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"fps": 0.2,
"format": "png"
}'Limits
- Source up to 300 s; longer fails with
duration_out_of_range. - A source over 90 s can add the warning
low_confidence_long_video, which does not fail the job. - Need a probe and a transcript too? That is video inspect.
- Billing is metered: the job reserves its Modal compute ceiling at submit and is billed at its own container seconds times the Modal list times 1.25, plus the platform fee, never more than the hold. There is no flat per-frame price, so this post quotes none.
- Stills keep the source frame size unless you send max_edge (16 to 2160). If one instant fails, that frame has a null url and the job still completes.
Sources
Related posts
More in Media tools
- Video filter /check is free: validate 8 ops before you pay $0.02
POST /v1/video-filter/check runs the same validation as the encode and bills nothing. See what it catches, the 8-op limit, and when a valid program still fails.
- Half-banner video: a still stacked over a clip for $0.02
Sume timeline compose stacks one still and one video in a single frame for a flat $0.02 per job. Layout ratio, overlay mode, 300 s ceiling and a ready request.
- Instagram Reels borders and logos: crop them off with video filter
Instagram lists Reels with borders, logos or watermarks among those shown less. Crop a border off with Sume video filter, using fractions, and check it free.
- Is my clip ready for face swap? Preflight with reference ingest
Face swap wants a 4 to 15 second source with usable audio. Read the clip first with reference ingest purpose face_swap and check duration and audio.silent.
Written by Sume