Mux thumbnail time and fit_mode vs Sume video frames at and max_edge
Mux gets a thumbnail from a playback ID URL with time, width and fit_mode. Sume video-frames takes at[] times or fps and returns durable image files.
To pull a still from a video, Mux builds it from a URL query string (time, width, height, fit_mode), while Sume's video frames takes a JSON program: at[] seconds (1 to 24 values) or an fps, plus format and max_edge, and returns durable image artifacts. Mux answers with an image at a URL; Sume answers with a job you poll.
Mux facts come from its Get images from a video guide, read 2026-10-02. Sume facts come from the video frames docs.
What can the Mux thumbnail URL do?
Per the guide, a request to image.mux.com/{PLAYBACK_ID}/thumbnail.png accepts time (seconds; default is the asset's thumbnail time or the middle of the video), width and height, rotate (90, 180 or 270), fit_mode (preserve, stretch, crop, smartcrop, pad), and flip_v / flip_h. The guide also states a default limit of one thumbnail and one GIF per 10 seconds of duration per asset, and ten of each for assets under 100 seconds.
What does Sume video frames take?
POST /v1/video-frames needs video_url on media.sume.com and exactly one of at[] or fps (0 < fps <= 2, mid-bin samples, capped at 24 frames). format is jpeg (default) or png; max_edge is 16 to 2160 and, when omitted, keeps the source size. Submit is always 202, and extraction is unbilled. An at value outside [0, duration) fails as frame_time_out_of_range.
There are no rotate, flip or fit options on this route. A crop or pad belongs in video filter on the clip or in an image step on the still.
curl -X POST https://api.sume.com/v1/video-frames \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: thumb-35s-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"at": [35],
"format": "png",
"max_edge": 1280
}'How do the two line up?
Poll GET /v1/video-frames/:id until resource_status is ready, then read frames[{t,url,width,height}].
| Need | Mux thumbnail URL | Sume video frames |
|---|---|---|
| Pick the instant | time | at[], 1 to 24 values |
| Size | width, height | max_edge, 16 to 2160 |
| Format | File extension on the URL | format: jpeg or png |
| Many stills | One URL each | at[] or fps in one job |
| Rotate or flip | rotate, flip_v, flip_h | Not on this route |
Sources
Related posts
More in Comparisons
- Nano Banana 2: five characters, 14 objects vs Sume reference slots
Google says Nano Banana 2 keeps up to five characters and 14 objects consistent. Sume caps reference images per model; see what you can send and where it stops.
- Novita AI API alternative for video and image jobs: Sume
Novita offers model APIs, agent sandboxes and GPU deployment. Sume offers managed media jobs only. Where they overlap and where Novita does more.
- OpenAI Batch 200 MB input file vs Sume's 4 MiB body: size your items
OpenAI's Batch API takes a 200 MB JSONL file. A Sume create body is capped at 4 MiB and input at 2 MiB, so media goes by URL and bulk items stay small.
- OpenAI 2,000 batches an hour vs Sume's write budget per minute
OpenAI's Batch API allows 2,000 batch creations per hour. Sume budgets requests per minute by plan: 120 writes on Free to 1,200 on Scale.
Written by Sume