Mux's thumbnail rate limit vs Sume video frames: 24 stills per call
Mux limits thumbnails to 1 per 10 seconds of duration per asset. Sume video frames takes up to 24 times per call. Here is how to plan a contact sheet.
Mux's image guide sets a default limit of one thumbnail for every 10 seconds of duration per asset, and 10 thumbnails for assets under 100 seconds. Sume's video frames returns stills for 1 to 24 times you name in one call, with a 300 second source cap. If you want a dense contact sheet, plan the count against whichever limit applies.
The Mux numbers are from its get images from a video guide, read 2026-10-03. Sume's are from video frames.
What each limit counts
Mux's limit scales with duration and is per asset. A 60 second asset gets 10. Longer assets get one more thumbnail for every additional 10 seconds. The page does not describe how the limit resets, so treat it as a planning ceiling and read the page for the current rule.
| Item | Mux | Sume video frames |
|---|---|---|
| Rate rule | 1 per 10 s of duration per asset | 24 frames per call |
| Short assets | 10 thumbnails under 100 s | Same 24 per call |
| Time control | time in seconds, defaults to thumbnail_time or the middle | at[] seconds, or fps up to 2 |
| Size control | width and height, default to original | max_edge 16 to 2160, omit for source size |
Sampling by fps versus naming times
Sume offers two ways to pick frames and allows exactly one. at[] takes explicit seconds, each at least 0 and below the clip length, or the worker fails with frame_time_out_of_range. fps is a sampling rate up to 2, expanded to mid-bin samples and capped at 24 frames.
For a 30 second clip, fps: 0.5 yields 15 frames, one per two seconds, and well inside the 24-frame cap. The mid-bin rule is why the first sample is at 1 second, not 0.
Doing it in Sume
Import the clip, then post to /v1/video-frames with the media.sume.com URL and either list. Submit always returns 202, and you read the result from GET /v1/video-frames/:id. A failed instant comes back with a null url and does not fail the job. Billing is by Modal compute plus the platform fee, not a flat price.
Use format: "png" only when you need lossless inspection. The default jpeg is lighter for a contact sheet.
- At most 24 frames per call.
- Source no longer than 300 s.
max_edgeclamps the long edge, 16 to 2160.
Planning a sheet for a long video
If the source is over 300 s, cut the part you need first with video trim, then extract frames from the trimmed clip. That keeps you below the cap and keeps the frames relevant. For whole-clip evidence including sampled stills, video inspect is the other route.
Reading your own results
Sume returns frames[{t,url,width,height}] once resource_status is ready, and source_duration_seconds shows what the worker probed. Use t to label each tile and width and height to lay them out.
If one instant fails to extract, that frame has a null url and the job still succeeds, so loop over the list and skip nulls rather than treating it as an error.
Sources
Related posts
More in Media tools
- Notion's free-plan 5 MB file limit: a short Sume clip or a link
Notion's help page says free-plan uploads must be under 5 MB. A video that long needs a short Sume trim at a smaller size, or a link instead of an upload.
- Open vs closed captions vs subtitles: what Sume's captions are
Sume's video captions are open captions burned into the pixels. The docs list no SRT or VTT export, and SRT uploads are unsupported. When that is right.
- OpenShot 4.0.1 Razor tool vs a hosted trim: exact or keyframe
OpenShot 4.0.1 upgrades its Razor cutting tool. Sume's video-trim cuts a clip by start and duration, exact (re-encode) or keyframe (stream copy), at $0.02.
- Performance Max AI video: sourced, enhanced or auto-generated?
Performance Max has three AI video features: sourced (opt-in), enhancements (default on), auto-generated (when you upload none). Which one touches your clip.
Written by Sume