Crop 1920x1080 to 9:16: video-filter width 0.3164, x 0.3418

To get a 9:16 strip from a 1920x1080 clip, send a Sume video-filter crop with x 0.3418, y 0, width 0.3164, height 1: about 608x1080, above TikTok's 540x960.

5 min readSume
All posts

For a centred 9:16 strip of a 1920x1080 clip, send one crop op to POST /v1/video-filter with x: 0.3418, y: 0, width: 0.3164 and height: 1. The crop is about 607.5 pixels wide and 1,080 tall, and the compiler rounds to even values for yuv420p, so you get a frame of roughly 606-608 x 1080. That clears the TikTok non-Spark minimum of 540x960 for 9:16 (page read 2026-10-08) and is vertical, as the YouTube Shorts page asks. The job costs $0.02, and the check is free.

Where the numbers come from

Crop values are fractions of the source frame, not pixels. A 9:16 window of a 1080-pixel-tall frame is 1080 x 9 / 16 = 607.5 pixels wide. As a fraction of 1,920 that is 607.5 / 1,920 = 0.31640625. To centre it, the left edge is (1 - 0.3164) / 2 = 0.3418.

Centred 9:16 crop of 1920x1080 (arithmetic as of 2026-10-08)
ValueFormulaResult
Strip width in pixels1,080 x 9 / 16607.5 (rounded to an even value)
width607.5 / 1,9200.3164
x (centred)(1 - 0.3164) / 20.3418
x + width0.3418 + 0.31640.6582, which is <= 1
Output sizeabout 606-608 x 1080Above 540x960

The request

The video_url must be a media.sume.com clip in your workspace. The Idempotency-Key header is required for the encode. Run the same body against /v1/video-filter/check first: it is unbilled and returns valid, diagnostics and an estimate, not a 400.

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

Limits to keep in mind

A crop cuts away 68 percent of the picture width (1 - 0.3164 = 0.6836). Check that the subject sits in the centre strip. The source must be 300 seconds or shorter for video filter, so a longer clip needs a trim first. The output keeps the frame rate and audio of the source unless the program changes them.

  • width and height must be at least 0.05, and x + width and y + height must be at most 1; otherwise video_filter_crop_out_of_bounds.
  • If the subject is off-centre, move x and keep width at 0.3164. The largest x is 1 - 0.3164 = 0.6836.
  • Up to 8 ops run in order before a filtergraph; one crop op is enough for this job.

Other strips of the same frame

The same arithmetic gives other windows of a 1920x1080 frame. A 1:1 square is 1,080 pixels wide, which is 1,080 / 1,920 = 0.5625 of the width, with x = 0.21875 to centre it. A 4:5 window is 864 pixels wide (1,080 x 4 / 5), which is 0.45 of the width. Keep to the rule that x + width is at most 1, and let the compiler round to even pixels.

Then check the specification

After the encode, compare the frame size with 540x960 and the file size with the bitrate floor of 516 kbps. A 608x1080 file is above the minimum but below the full-HD frame, so a platform may scale it up. If sharpness matters more than the cost, regenerate the clip in 9:16 and skip the crop.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume