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.

5 min readSume
All posts

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.

Thumbnail limits compared (read 2026-10-03)
ItemMuxSume video frames
Rate rule1 per 10 s of duration per asset24 frames per call
Short assets10 thumbnails under 100 sSame 24 per call
Time controltime in seconds, defaults to thumbnail_time or the middleat[] seconds, or fps up to 2
Size controlwidth and height, default to originalmax_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_edge clamps 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

All Media tools posts

Written by Sume