TikTok video width and height: 1080x1920, and how to export it
TikTok width and height as third-party guides state them, 1080x1920 at 9:16, and two Sume routes to that file: crop and scale, or a Timeline render.

The width and height guides give for a TikTok video is 1080x1920 pixels at a 9:16 ratio, MP4. I could not retrieve TikTok's own help page when I tried on 2026-10-05, so treat that number as a third-party consensus, not a quote from TikTok. The two guides I read, Reap and Headliner, both list 9:16 and 1080x1920 as the core spec for Shorts, Reels and TikTok, and neither is a platform page.
What the guides say, and what they leave open
The guides agree on shape and disagree on length. That is why a file spec and a length limit should be handled separately: the shape is a property of the pixels you export, the length is a property of the cut.
| Item | Value in the guides | Status |
|---|---|---|
| Ratio | 9:16 | Agreed across guides |
| Pixels | 1080x1920 | Agreed across guides |
| Container | MP4 | Agreed across guides |
| In-app length | 10 minutes | Reap and Headliner; check TikTok before you rely on it |
| Upload length | up to 60 minutes | One guide only; guides vary |
Route 1: you have a horizontal or square clip
Crop to a 9:16 window with video filter, then scale in the same request. For a 1920x1080 source the crop is width 0.3164, height 1, x 0.3418, and the filtergraph is scale=1080:1920,setsar=1. Run it through POST /v1/video-filter/check first: the check is free, creates no job, and returns the compiled filters and an estimate.
Every Sume media tool except captions takes a media.sume.com URL that your workspace already owns, so import the clip first with POST /v1/media-imports and send an Idempotency-Key on writes.
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/clip.mp4",
"ops": [{"op":"crop","x":0.3418,"y":0,"width":0.3164,"height":1}],
"filtergraph": "scale=1080:1920,setsar=1"
}'Route 2: you are assembling a new video
Timeline 1.0 renders 1080x1920 MP4 by default, so for a sequence of clips you set nothing. Set output.width and output.height only for another size (even integers from 256 to 2160), and leave output.fps out so the render follows the sources. The public rate is $0.10 per started output minute; confirm it in GET /v1/catalog.
Verify before you upload
Run video inspect with "frames": false on the result. That returns only the probe, with no stills, so you can compare the real dimensions and duration against your target. If the file is longer than the length you plan to post, cut it with video trim before the upload.
Crop fractions for common source shapes
If your source is not 9:16, the crop numbers depend only on its ratio. These are the full-height window widths; the posts linked below work each one through with pixel results: 16:9 center crop, 3:2, 4:3 and square.
Vendor facts should come from the vendor. TikTok's own help pages are the right place to confirm dimensions, and a number in a third-party guide can lag a change by months. Treat 1080x1920 as the shape most guides agree on and a safe default, and check a current TikTok page before you commit a large batch. Nothing in the Sume pipeline above depends on the exact figure: if a platform wants a different size, change the scale values or the Timeline output block and re-run.
For a batch, write the crop numbers into a small table in your script, key them by source ratio, and run the free check on one sample file of each shape before the full batch. That catches a bad fraction once, not a hundred times, and it costs nothing because the check creates no job.
- 16:9: width 0.3164, x 0.3418.
- 3:2: width 0.375, x 0.3125.
- 4:3: width 0.4219, x 0.2891.
- 1:1: width 0.5625, x 0.2188.
- Already 9:16 but not 1080x1920: skip the crop and send only
scale=1080:1920,setsar=1.
Sources
Related posts
More in Media tools
- Sume audio_url_and_parts_exclusive: pick one spine for a VO Short
Sume timeline rejects audio.url together with audio.parts. Send a single url spine, or up to 20 parts[], never both; the hint is use_audio_url_or_audio_parts.
- Sume timeline audio_url_required: a silent Short needs mode silence
audio_url_required means the timeline has no audio.url, no audio.parts and no mode. Add a spine, or set audio.mode to silence with a duration_seconds.
- compose 400: stack keys and overlay keys mixed in one layout
compose layout keys are stack (split, image_region, ratio) or overlay (position, width_ratio, margin_ratio). Mixing them is a 400. Match layout to operation.
- Timeline output fps for a Short: 24, 25, 30 or 60, and the warning
Timeline 1.0 output.fps accepts 24, 25, 30 or 60. Leave it out and the render follows the sources. Read output_fps_resamples_sources before you upload.
Written by Sume