Video inspect on a 60 s clip: stills at 3.75 s, then every 7.5 s
With no frames program, video inspect returns 8 mid-bin stills. On a 60-second clip they land at 3.75, 11.25, 18.75 seconds and on, 768 px on the long edge.

If you call video inspect on a 60-second clip and send no frames program, you get 8 stills at 3.75, 11.25, 18.75, 26.25, 33.75, 41.25, 48.75 and 56.25 seconds. The 60 seconds are cut into 8 slices of 7.5 seconds and each still is taken from the middle of its slice. Each is at most 768 pixels on the long edge, and the call also returns probe facts for the clip.
Where the default stills land
The docs say that omitting frames gives 8 mid-bin stills, and that a clip shorter than 8 seconds is sampled at 1 fps. The table applies the 8-slice rule to four clip lengths.
| Clip length | Slice | First still | Last still |
|---|---|---|---|
| 30 s | 3.75 s | 1.875 s | 28.125 s |
| 60 s | 7.5 s | 3.75 s | 56.25 s |
| 120 s | 15 s | 7.5 s | 112.5 s |
| 1,800 s (maximum) | 225 s | 112.5 s | 1,687.5 s |
Changing the program
You can pass frames as false for the probe only, as an object with at (1 to 24 explicit seconds), or as an object with fps (0 to 2, capped at 24 stills). The object takes only one of at and fps. Optional keys are format (jpeg or png), max_edge (64 to 2160, default 768) and seek.
- seek precise (default) decodes to the accurate instant.
- seek fast moves each still to the keyframe at or before its time, up to about one GOP earlier, never later.
- A source can be up to 1,800 seconds, and the call allows 24 stills at most.
The call and the wait
The default mode is sync: the handler waits up to 30 seconds and returns 200 with the result, or 202 with a queued job to poll. A request must carry an Idempotency-Key.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: inspect-60s-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4"
}'Transcript add-on
Adding transcribe true runs Sume STT at $0.01 per audio minute. Without a duration_seconds hint, Sume reserves 1 minute. A 60-second clip therefore holds $0.01 for the transcript, and a clip with no audio track fails with inspect_source_has_no_audio. Read probe.has_audio first if you are unsure.
Why mid-bin
Placing each still in the middle of its slice avoids the first and last frames of a clip, which are often fades or black. On a 60-second clip with the default, the first still is 3.75 seconds in and the last is 3.75 seconds from the end, so the set is symmetric. If you need the opening frame, ask for it with at [0].
For a quick look at a long recording, seek fast trades accuracy for speed: stills snap to a keyframe at or before their time, so a still planned for 56.25 seconds could come from a few seconds earlier. Use precise when the timestamp has to be exact.
Sources
Related posts
More in Media tools
- Video inspect with fps 0.4 returns 24 stills from a 60-second clip
The inspect frames program caps at 24 stills and fps at 2. For a 60-second clip, fps 0.4 fills all 24 slots, 2.5 seconds apart, centered in each bin.
- Video inspect seek fast vs precise: stills up to one GOP early
Sume video inspect seek: fast snaps each still to the keyframe at or before the time, about 0-5 s early on typical sources. precise decodes the exact instant.
- Video inspect seek fast vs precise: stills up to one keyframe early
Set seek fast to get stills from the keyframe at or before each time, skipping the decode. Stills can be early by a GOP, about 0 to 5 s, never later.
- Video inspect transcribe: no duration hint reserves 1 minute
Sume video inspect with transcribe true bills $0.01 per audio minute. With no duration_seconds it reserves 1 minute; the hint maxes at 600 s (10 min = $0.10).
Written by Sume