Crop a 21:9 Seedance clip for TikTok: 1120x630 passes, 630x630 misses
A 720p 21:9 Seedance frame is 1470x630. Cropped to 16:9 it is 1120x630, above TikTok's 960x540 floor. Cropped to a square it is 630x630, ten pixels short.

Yes for 16:9, no for a 720p square. A 21:9 Seedance frame at 720p is 1470x630. Cropping its width to 1120 pixels gives 1120x630, which is above TikTok's 960x540 minimum for 16:9 ads. A square crop is only 630x630, and TikTok's 1:1 minimum is 640x640.
What TikTok lists
The TikTok Ads Help page for in-feed video specifications lists three ratios for non-Spark ads: 9:16 at 540x960 or more, 16:9 at 960x540 or more, and 1:1 at 640x640 or more. It does not list 21:9, so an ultrawide master has to be cropped before it is uploaded. Seedance 2.5, 2.0, Fast and Mini and the MiniMax H3 models take 21:9 on Sume; Wan 3.0, Kling 3 and Omni do not, per the video catalog.
The numbers below are for non-Spark in-feed ads only. The page gives different fields for Spark Ads, so check it again if your ad is a Spark Ad.
Crop results by tier
The source sizes are Seedance's 21:9 sizes on Sume. Output width is the source height times the target ratio. The width fraction is what you send to the crop op in video filter, which takes fractions of the source frame.
| Tier | Source | 16:9 crop | Fraction | 1:1 crop | Fraction |
|---|---|---|---|---|---|
| 480p | 992x432 | 768x432 (misses 960x540) | 0.7742 | 432x432 (misses 640x640) | 0.4355 |
| 720p | 1470x630 | 1120x630 (meets) | 0.7619 | 630x630 (misses by 10) | 0.4286 |
| 1080p | 2205x945 | 1680x945 (meets) | 0.7619 | 945x945 (meets) | 0.4286 |
The check in Python
This script has no network calls. It reproduces the table, so you can change the sizes or the minimums.
SRC = {"480p": (992, 432), "720p": (1470, 630), "1080p": (2205, 945)}
TARGETS = {"16:9": (16, 9, 960, 540), "1:1": (1, 1, 640, 640)} # TikTok minimums
for tier, (w, h) in SRC.items():
for name, (rw, rh, min_w, min_h) in TARGETS.items():
out_w = round(h * rw / rh)
frac = out_w / w
ok = out_w >= min_w and h >= min_h
print(f"{tier} {w}x{h} -> {name}: {out_w}x{h}, width fraction {frac:.4f}, "
f"{'meets' if ok else 'misses'} TikTok minimum")What the crop costs
Video filter is $0.02 per encode, and its /v1/video-filter/check endpoint is free. The doc says the compiler rounds crop values to even numbers for yuv420p, so run the check first and read the output size with video inspect before upload. A fraction of 0.7619 on 1470 pixels is 1119.99, which should land on 1120.
A 10-second Seedance 2.0 clip in 21:9 costs $1.78 at 480p, $3.80 at 720p and $8.55 at 1080p. Add $0.02 for the crop. At 720p a native 16:9 10-second clip is 1280x720 and costs $3.78, so cropping a 21:9 master is not cheaper than rendering 16:9 directly. Crop when you already have the ultrawide master, or when you want both cuts from one take.
Running the crop on Sume
- Import the generated clip so it is on
media.sume.comfor your workspace. Video filter refuses off-host URLs. - Send the
cropop toPOST /v1/video-filter/checkwithx0.119,y0,width0.7619 andheight1 for a centered 16:9 window. The check is unbilled and returns diagnostics. - Submit the same body to
POST /v1/video-filterwith anIdempotency-Key, then pollGET /v1/jobs/:id/statusand readGET /v1/jobs/:id/resultfor the newvideo_url. - The source stays unchanged, so you can crop the same master a second time for another placement.
Rule of thumb
- For 16:9 from 21:9, start at 720p or higher.
- For a square from 21:9, start at 1080p. At 720p the height is 630, and that is ten pixels under TikTok's floor.
- For 9:16 from 21:9, do not crop. The strip is 354 pixels wide at 720p.
Sources
Related posts
More in Use cases
- Customer onboarding email series with an avatar: 5 clips, cost by tier
Five 20-second onboarding clips from one Sume avatar cost $18.40 on standard, $24.50 on plus and $55.00 on max. How to plan the series and when to re-render.
- How do I automate a daily morning briefing audio with a TTS API?
A daily briefing of 2,200 characters is one TTS job: 11 cents a day, $3.30 for 30 days on Sume, plus a 1-cent concat if you add a music sting.
- DALL-E 2 was removed May 12: four variations from one edit call
OpenAI removed dall-e-2 on May 12, 2026. Replace it with one Sume edit call that returns up to four new takes of a photo, with estimated cost at each quality.
- Driver onboarding videos with an AI avatar: five 30-second clips
Five short avatar clips can cover a driver's first day. What each should say, how to handle a multilingual crew honestly, and the cost by tier.
Written by Sume