Crop video size: the 0.05 minimum side in video-filter

A video-filter crop needs width and height of at least 0.05 and a rectangle inside the frame; anything else returns video_filter_crop_out_of_bounds.

4 min readSume
All posts

To crop a video's size in Sume, send a crop op with fractions of the source frame. width and height must each be between 0.05 and 1, and the rectangle must stay inside the frame. A side under 0.05, or a rectangle that runs past the edge, is refused with video_filter_crop_out_of_bounds.

Rules are from the Video filter docs, read 2026-10-01. The Midjourney V8 edit model page describes changing regions of an image; a crop here is a plain rectangle on a clip, with no generation.

What does the 0.05 minimum mean?

A crop is written as four fractions of the source frame, so you never need the pixel size. The minimum applies to width and height only: they live in [0.05, 1], while x and y live in [0, 1]. A 0.04 wide strip is refused.

On top of the per-field ranges, x + width and y + height must both be at most 1.

Which rectangles are refused?

Each row below is checked against the documented rules, not measured.

Example crop rectangles against the Video filter rules, read 2026-10-01.
Rectangle (x, y, width, height)Result
0, 0, 1, 1Accepted: the whole frame
0.25, 0, 0.5, 1Accepted: a centered half-width strip
0.5, 0, 0.5, 1Accepted: right half, touches the edge
0.6, 0, 0.5, 1Refused: x + width is 1.1
0, 0, 0.04, 1Refused: width is under 0.05
0, 0.9, 1, 0.2Refused: y + height is 1.1

Why is my output a pixel off the fraction?

The compiler even-rounds the crop for yuv420p, so the output width and height are even numbers. A fraction that lands on an odd pixel count is rounded to an even one.

How do I test a rectangle before paying?

Send the same body to POST /v1/video-filter/check. It runs the schema checks, creates no job and reserves no credits, and returns diagnostics instead of a 400.

For the full range rules and an aspect-ratio example, see Crop a video by fractions.

curl -X POST https://api.sume.com/v1/video-filter/check \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
    "ops": [{ "op": "crop", "x": 0, "y": 0, "width": 0.04, "height": 1 }]
  }'

Sources

Related posts

More in Developers

All Developers posts

Written by Sume