9:16 Short to a 1:1 feed clip: crop height 0.5625 with a y offset

Cut a square 1080x1080 clip out of a 1080x1920 vertical video with video-filter: full width, height 0.5625, y 0.1 for headroom. Numbers and request.

4 min readSume
All posts

To get a 1:1 square out of a 1080x1920 vertical video, keep the full width and crop the height to 0.5625 of the frame (1080 / 1920). Set y to 0.1 instead of the centered 0.2188 if there is a face in the upper half; the strip is then 1080x1080, taken from row 192 to row 1272. A square needs no scale step.

The numbers

Both sides are fractions of the source frame: width 1, height 0.5625, x 0. Only y is a choice, anywhere from 0 to 1 - 0.5625 = 0.4375. A vertical video usually has the subject's face in the upper 40% of the frame, and the lower part is often captions or hands, so y between 0.05 and 0.15 is a good first try.

1080x1920 to 1080x1080 crop options (arithmetic from the video-filter docs, read 2026-10-05)
yRows keptWhat stays
00 to 1080Top of frame, caption zone lost
0.1192 to 1272Upper-middle, usual face headroom
0.2188420 to 1500Exact center
0.4375840 to 1920Bottom, lower third and captions

The request

No scale is needed, so the program is a single op. Run it through the free check first.

At the documented public rate the encode is $0.02 per job and the check is free; confirm the live rate in GET /v1/catalog. The clip must already be a media.sume.com file of your workspace, so import it first with POST /v1/media-imports, and send an Idempotency-Key on the encode.

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/short.mp4",
    "ops": [{"op":"crop","x":0,"y":0.1,"width":1,"height":0.5625}]
  }'

# valid: true, encode: "not_run" -> send the same body to /v1/video-filter

Caveats

  • Burned-in captions on the vertical original may fall outside the square. Crop first, then caption the square.
  • If the source already has captions you cannot lose, pick y to include them or re-render without them.
  • The rounding rule floors to even pixels, so 0.5625 x 1920 = 1080 and 0.1 x 1920 = 192 land on exact values here.

Other targets from a vertical source

The same full-width idea gives other shapes. Keep width: 1, set the height fraction to the target's rows divided by 1920, and choose y. Rows are rounded down to an even value, so a 16:9 window comes out at 606 rows, not 607.5. Going wide from a vertical source discards most of the picture, so it only suits a clip with a tight subject in the middle.

Full-width crops from a 1080x1920 source (arithmetic, read 2026-10-05)
TargetHeight fractionRows keptMax y
1:1 (1080x1080)0.562510800.4375
4:5 (1080x1350)0.703113500.2969
3:4 (1080x1440)0.7514400.25
16:9 (1080x606)0.31566060.6844

Choosing y from a still

Do not guess y. Pull a still at a moment when the subject is in its usual place, using video frames at the source size, and measure where the face sits as a fraction of the 1920 rows. A face centered at row 600 is at 0.31 of the height. A square window that must contain it with room above has to start no lower than row 600 minus 540, which is row 60, so y = 0.03 centers the face exactly, and any value from 0 to about 0.03 keeps it in the middle.

If the subject moves during the clip, one fixed crop may cut it off at some point. Cut the clip into shots with video trim, crop each shot with its own y, and join the results in Timeline 1.0. That costs one trim and one filter job per shot, plus one render, at the documented rates of $0.02, $0.02 and $0.10 per started minute.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume