Video inspect stills come back 432x768: set max_edge 1920

Video inspect clamps stills to a 768 long edge by default, so a 1080x1920 clip returns 432x768 frames. Set max_edge up to 2160, or use video frames.

4 min readSume
All posts

If you inspect a 1080x1920 vertical clip and get stills that are only 432x768, nothing is wrong: video inspect clamps the long edge of each still to 768 pixels by default. 768 / 1920 = 0.4, so a 1080x1920 frame becomes 432x768. Send max_edge (64 to 2160) in the frames object to get bigger stills, or use video frames, which keeps the source size unless you clamp it.

The two defaults side by side

The two routes look similar but differ on this one point, and it matters when you are reading small caption text on a vertical clip.

Still sizes for a 1080x1920 clip, from the Sume docs (read 2026-10-05)
Routemax_edge defaultAllowed rangeStill from a 1080x1920 clip
video inspect76864 to 2160432x768
video inspect, max_edge 1920set by you64 to 21601080x1920
video framesnone (source size)16 to 21601080x1920

Asking for full-size stills

frames takes exactly one of at[] (1 to 24 timestamps) or fps (above 0, up to 2, mid-bin, capped at 24 stills). Add format: "png" for lossless frames and max_edge for the size. Inspect reads sources up to 1800 seconds; video frames reads up to 300.

Every Sume media tool except captions takes a media.sume.com URL that your workspace already owns, so import the clip first with POST /v1/media-imports and send an Idempotency-Key on writes.

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-big-stills-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/short.mp4",
    "frames": {"at": [0, 4.5], "max_edge": 1920, "format": "png"}
  }'

Which route to pick

  • Need probe facts, an STT transcript or a quick skim of a long file: inspect, and raise max_edge only if you need to read small text.
  • Need exact frames at the source size for a cover or a caption check: video frames.
  • Do not send at[] and fps together; both routes return a 400 for that.
  • A timestamp at or past the duration fails with frame_time_out_of_range.

Sizes for other clips

The clamp applies to the long edge, whichever edge that is, and keeps the aspect. A horizontal 1280x720 clip gives 768x432 stills. A 1080x1920 clip gives 432x768 at the default and about 1215x2160 at the 2160 ceiling.

Inspect still sizes by max_edge (arithmetic from the video-inspect docs, read 2026-10-05)
Sourcemax_edgeStill size
1080x1920768 (default)432x768
1080x192019201080x1920
1280x720768 (default)768x432
1280x72012801280x720

Cost and when the default is enough

Inspect bills the probe and the stills by their Modal compute, with the reserve capped at the hold, and an optional transcript at $0.01 per audio minute on top (confirm in GET /v1/catalog). max_edge changes the still size, not the transcript rate. A larger edge makes bigger image files to download, so use the default when you only need to see scenes, and raise it when you must read burned-in captions or inspect edges.

A simple rule: scanning for content or scene changes, keep 768. Proofing a final cut for text and crop quality, ask for 1920 or use video frames. Skimming a very long file, add seek: "fast", which moves each still to the keyframe at or before the requested instant, so it can be earlier than asked (about 0 to 5 seconds on typical sources) but never later.

Whichever route you use, keep in mind that inspect reads sources up to 1800 seconds and 24 stills per call, while video frames reads up to 300 seconds. For a long file, inspect gives you the overview, and frames gives you the exact full-size stills for the moments you picked.

  • Default stills: 8 mid-bin frames, or one per second for a clip under 8 seconds.
  • frames: false returns the probe only, with no stills.
  • format: "png" is lossless; jpeg is the default.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume