Odd video dimensions: Sume Timeline output takes even sizes 256-2160
Timeline 1.0 takes output width and height as even integers from 256 to 2160. Why 4:2:0 video wants even sizes, and how to pick one for Shorts and TikTok.

Sume's Timeline 1.0 takes output.width and output.height as even integers between 256 and 2160. YouTube's encoding page recommends H.264 with 4:2:0 chroma, which stores colour at half resolution, so even dimensions are the safe choice. Pick sizes from the platform's minimum, not by hand-cropping to odd pixel counts.
What the platform pages say
YouTube's "recommended upload encoding settings" (read 2026-10-05) lists H.264 High Profile with 4:2:0 chroma. TikTok's In-Feed page (read 2026-10-05) lists minimum sizes of 540 by 960, 960 by 540 and 640 by 640. Every number there is even.
What Sume does
Timeline 1.0 rejects values outside the range or odd values at the request step; run POST /v1/timeline-1.0/plan to find out for free. The default is 1080 by 1920. In video-filter, crop fractions are rounded to even sizes for yuv420p, as the docs note.
If you want a 9:16 frame at another size, work from the width: pick an even width and compute the height as width times 16 over 9, then round to an even number and check the drift.
for w in (540, 720, 1080):
h = round(w * 16 / 9 / 2) * 2
print(w, h)Common sizes
The values below are all even and fit the Timeline range.
| Width | Height | Note |
|---|---|---|
| 540 | 960 | TikTok non-Spark minimum |
| 720 | 1280 | Rounded from 1280 |
| 1080 | 1920 | Timeline default |
Check
After a render, run video inspect to confirm the dimensions, then compare with the page. Do not scale after rendering unless you must; re-encoding twice costs quality.
Sources
Related posts
More in Developers
- Timeline plan first: the unbilled estimate for a 30-second Short
POST /v1/timeline-1.0/plan compiles your cut without a job or a charge and returns duration, segments and estimated cost. A 30-second render bills one minute.
- Timeline plan for a 40-second Omni stitch: four segments, one minute
Run Sume's unbilled timeline plan on four 10-second Omni clips to see segment_count, billable_minutes and the cost before you render. Request body included.
- A 30-line Node proxy so a browser can start a Sume video, no key
A node:http server with only POST /render and GET /status/:id. It fixes the model and clip size and keeps SUME_API_KEY on the server, away from the browser.
- A tiny Node proxy so a browser can order a 4K Omni clip safely
Sume keys are server-side only. A short Node proxy exposes POST and GET routes for one 4K Gemini Omni Flash 1.1 clip, with an Idempotency-Key and pinned fields.
Written by Sume