3:2 camera clip to 9:16: crop width 0.375, scale to 1080x1920

A 3:2 clip needs a crop of 0.375 of its width, centered at x 0.3125, to become 9:16. The video-filter request, the rounding, and what you lose.

5 min readSume
All posts

To turn a 3:2 clip, the shape many stills cameras record video in, into 9:16, keep the full height and crop the width to 0.375 of the frame, starting at x = 0.3125. In Sume that is one video-filter request with a crop op, followed by scale=1080:1920 in the same request's filtergraph. A 1620x1080 frame becomes a 606x1080 strip, and the 3240x2160 version of the same frame uses the same fractions.

The 9:16 frame at 1080x1920 is the vertical size that third-party short-form guides list for Shorts, Reels and TikTok alike (Reap, read 2026-10-05). Those guides are not platform pages, so treat the size as the common target and check the platform's own page for limits before you publish.

The numbers

The crop fractions come from one formula: width = (9/16 x height) / source width when you keep the full height. For 3:2 that is 607.5 / 1620 = 0.375. Centering puts x at (1 - 0.375) / 2 = 0.3125. Video filter takes fractions of the frame, so the same four numbers work for a 1620x1080 proxy and a 6K original.

Crop program for a 1620x1080 source (arithmetic from the video-filter docs, read 2026-10-05)
ItemValue
Source frame1620x1080 (3:2)
crop x / y0.3125 / 0.0
crop width / height0.375 / 1.0
Compiled crop (rounded down to even pixels)606x1080 at x=506, y=0
Scale to 1080x19201.782x wide, 1.778x tall
Share of the source pixels keptabout 37%

What the crop costs you

A 3:2 frame is wide enough that a 9:16 window keeps only 37.5% of its width. A subject standing in the middle survives. Two people side by side do not, and a wide product shot loses its edges. If the subject is off center, move x instead of re-shooting: x can be anything from 0 to 1 - width, here 0 to 0.625.

The compiler rounds each pixel value down to an even number so the yuv420p encode never lands on an odd column. That turns 607.5 into 606 and the 506.25 offset into 506. The strip is then 0.2% narrower than a true 9:16, which scale=1080:1920 absorbs without visible distortion.

The request

Run the check first. It runs the same schema and filtergraph checks as the encode, returns valid, diagnostics[] and an estimate, and creates no job. Then send the identical body to POST /v1/video-filter.

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.

# 1) free contract check, no job, no charge
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/camera.mp4",
    "ops": [{"op":"crop","x":0.3125,"y":0.0,"width":0.375,"height":1.0}],
    "filtergraph": "scale=1080:1920,setsar=1"
  }'

# 2) same body to /v1/video-filter, with an Idempotency-Key header, to encode

Limits that apply

  • The filter source can be at most 300 seconds. For a longer take, cut a range first with video trim.
  • ops[] run before filtergraph, so the crop happens on the original frame and the scale on the cropped one.
  • The result is a new MP4 (kind: video_filter); the source file does not change.
  • The output keeps the source's frame rate and audio unless the program changes them.

Moving the window

The centered crop starts at x = 0.3125, which is column 506 of a 1620-pixel-wide frame. If your subject stands to one side, slide the window instead of re-framing the whole clip. At x = 0 the strip starts at the left edge; at the largest allowed x, 0.625, it starts at column 1012 and ends at the right edge. Any value in between is valid, as long as x + width stays at or below 1.

Keep the same width of 0.375 whichever x you pick, so the aspect stays 9:16. Changing the width changes the aspect and forces the scale step to stretch the picture. After the encode, caption the new file with video captions so the text is placed against the final 1080x1920 frame and not the original wide one.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume