9:16 aspect ratio in pixels: 1080 × 1920
The 9:16 aspect ratio in pixels is 1080 × 1920. It is the standard vertical resolution, and the one TikTok, Instagram Reels and YouTube Shorts all ask for. If you only came for the number, you have it.
Stay thirty more seconds if your source video is horizontal. Because then the number that actually decides how your video looks isn't 1080 × 1920. It's 31.6% — the share of your picture that survives the crop.
Updated 17 July 2026 · by Yohann Kipfer, who writes the encoder behind make-vertical.com
9:16 resolutions in pixels
Every resolution below is 9:16. What changes is the pixel count, not the proportion.
| Name | Pixels | When to use it |
|---|---|---|
| HD | 720 × 1280 | Old phones, slow connections. Visibly soft on a modern screen. |
| Full HDstandard | 1080 × 1920 | The standard. What TikTok, Reels and Shorts all ask for. Upload this. |
| QHD | 1440 × 2560 | Fine as an archive master. The platforms re-encode it down anyway. |
| 4K UHD | 2160 × 3840 | Rarely worth uploading. Worth a lot as a source — see below. |
You will find longer tables elsewhere, padded out with phone screen sizes like 1125 × 2000 or 1284 × 2282. Those are handset resolutions, not delivery formats — and most of them aren't even 9:16 (an iPhone Pro Max screen is about 9:19.5). Don't export to them. Our own encoder offers 1080 and 720 and nothing else, on purpose.
The formulas, if you need them by hand:
height = width × 16 / 9
width = height × 9 / 16
Calculator: width ↔ height
Type one side, get the other. It covers 4:5, 1:1 and 2:3 too, because those are the other three ratios the tool exports.
Formulas: height = width × 16/9 · width = height × 9/16
What cropping a 16:9 to 9:16 really costs
Here is the sum almost nobody does. Take a 1920 × 1080 video. The largest 9:16 crop that fits inside it keeps the full height, 1080 px, and is 1080 × 9/16 = 607.5 px wide. That is 656,100 pixels out of the original 2,073,600. 31.6%. The other 68.4% goes in the bin.
Now the uncomfortable part: 607.5 px of width is below the 1080 the standard wants. Publishing at 1080 × 1920 means upscaling ×1.78. You are stretching pixels that were never recorded. That is why your vertical looks mushy even though the original was Full HD.
| Source | 9:16 crop | Kept | To reach 1080 wide |
|---|---|---|---|
| 1280 × 720 (720p) | 406 × 720 | 31.6% | ×2.67 upscale |
| 1920 × 1080 (1080p) | 608 × 1080 | 31.6% | ×1.78 upscale |
| 2560 × 1440 (1440p) | 810 × 1440 | 31.6% | ×1.33 upscale |
| 3840 × 2160 (4K UHD) | 1216 × 2160 | 31.6% | ×0.89 downscale ✓ |
| 1440 × 1080 (4:3) | 608 × 1080 | 42.2% | ×1.78 upscale |
Look at the “Kept” column. Always 31.6%, at 720p and at 4K alike. That isn't a coincidence: the percentage depends only on the ratio, never on the resolution. Cropping 16:9 to 9:16 costs 68.4% of the picture every time. A 4:3 source gets off lighter (42.2%) because it was less wide to begin with.
The rule that falls out of this
For a 9:16 crop to reach 1080 px wide without upscaling, the source needs at least 1920 px of height (because 1920 × 9/16 = 1080). Of the usual formats, only 4K clears it: 2160 px of height gives a 1215 px crop. Even 1440p falls short.
In practice: if you plan to go vertical, shoot 4K. Not to upload 4K — that part doesn't matter — but so you have picture to spare when you crop.
Try it with your dimensions
Put in the real size of your video. Everything you see is arithmetic on those two numbers.
- Native 9:16 crop
- 608 × 1080
- Pixels kept
- 31.6%
- To reach 1080 wide
- ×1.78 (upscale)
You throw away 68.4% of the image, and the crop is only 608 px wide — under the 1080 the standard asks for. Publishing at 1080 × 1920 means upscaling ×1.78, and that is exactly where the soft, mushy look comes from. Your source would need 1920 px of height to avoid it.
With a blurred background nothing gets cropped: the whole frame goes in at 1080 × 608 and fills 31.6% of the canvas height. A blurred copy of your own shot fills the rest.
Why 607.5 becomes 608
607.5 isn't a whole number of pixels. There is no half pixel. So it has to be rounded — and not to just anything: H.264 with 4:2:0 chroma subsampling (yuv420p, the thing every device plays) works in 2 × 2 pixel blocks, so it demands even dimensions. Hence 607.5 → 608, not 607.
If you have ever watched ffmpeg spit out width not divisible by 2 and die, this is why. In our own code the output size calculation ends in Math.round(x / 2) * 2 for that exact reason. A boring line that prevents a failed export.
What to do about that 68%
There are two honest ways out, and both are on this page:
Nothing gets cropped. Your 16:9 goes in whole at 1080 × 608 and a blurred copy of your own shot fills the gap. You keep the entire frame and upscale nothing. The price: your video occupies 31.6% of the screen height.
It does crop, but the frame follows the person instead of sitting nailed to the centre. You still throw away 68.4% — the difference is that the 31.6% you keep has something in it. This is what you want when somebody talks and moves.
A detail I find quietly funny: that 31.6% shows up in both cases. It is the width you keep when you crop, and it is exactly the height your video fills inside the canvas when you use a blurred background. Same fraction, seen from two sides. Cropping or padding is just choosing where you pay the 68%.
First video free, no signup · MP4, MOV, MKV, WEBM, AVI
“Zoom to 175% and reposition” is not an answer
Every guide on this subject ends the same way: zoom in, drag the frame onto your subject, export. That works for exactly one kind of shot — the one where the subject never moves. A locked-off talking head, centred, tripod. Fine.
Anything else and a static crop fails halfway through the clip. The speaker leans out of frame. Two people sit 1.2 m apart and only one fits in 608 px. The camera pans. You end up cutting the clip into pieces and re-cropping each piece, which is where an afternoon goes.
So our converter moves the crop window instead. Concretely: worker/track.py runs OpenCV's bundled Haar cascade over the frames, smooths the resulting centre path (raw detections jitter, and a jittery crop is worse than a static one), and hands ffmpeg a sendcmd script that drives the crop window over time. The geometry is unchanged — still 31.6% — but the 31.6% follows the face.
Two honest caveats. A Haar cascade is a face detector from 2001, not a neural net: it wants a reasonably front-facing, reasonably lit face, and it will lose someone who turns fully to profile. When it finds nothing, we fall back to a centred crop rather than inventing a path. And tracking is a paid-tier feature — the free video gives you the crop, the ratios and the fill modes, but not the tracker.
9:16 specs by platform
All four publish at 1080 × 1920. What differs is duration and weight.
| Platform | Resolution | Max duration | Max weight | Codec |
|---|---|---|---|---|
| TikTok | 1080 × 1920 | 10 min recorded in-app · up to 60 min uploaded | 287.6 MB from the app · 4 GB from the web | MP4 · H.264 · 30 fps |
| Instagram Reels | 1080 × 1920 | 3 min in-camera · up to 20 min uploaded | 4 GB | MP4 · H.264 · 30 fps |
| YouTube Shorts | 1080 × 1920 | 3 min (180 s) | — | MP4 · H.264 · 30–60 fps |
| Snapchat Spotlight | 1080 × 1920 | 3 min per upload | ≈ 1 GB | MP4 or MOV · H.264 |
Two warnings about this table. First: the only figure here I can point at official documentation for is Shorts, 3 minutes since 15 October 2024. The rest comes from each platform's help centre and changes without notice: these are the values as of July 2026. Second: you won't find an “ideal duration” column here. Very precise numbers circulate for that (“21–34 s”) with no traceable source, and I am not going to repeat them. What is a spec is in the table. How long your video should be depends on your niche.
Safe zones, in pixels
The app's interface covers part of your video: caption, like button, username, progress bar. I want to be straight about this, because I went looking for the numbers and they don't agree with each other. For TikTok's bottom margin I found 300 px, 320 px, 484 px and 640 px depending on which guide you read. None of them is “official”: TikTok publishes no pixel template, and the UI shifts with the device and with how long your caption is.
So rather than invent precision, here is the conservative envelope on 1080 × 1920. Stay inside it and you survive every version I found documented.
- ↑Top: 220 px. The margin the Reels guides ask for, and comfortably more than TikTok's ~130 px.
- ↓Bottom: 500 px. That's 26% of the height. Sounds brutal, but the caption, the sound name and the profile all live there. Respect 500 px and you're safe even in the worst case I found (484 px).
- →Right: 140 px. The icon column (heart, comments, share). Shorts only needs ~60 px, but 140 works for all three.
- ←Left: 60 px. The quiet side. Almost nothing intrudes.
Result: your genuinely safe zone is 880 × 1200 px, sitting slightly high. That is 51% of the canvas. Put it next to the 31.6% you kept from the crop and you see why vertical video is an exercise in throwing picture away: out of a 1920 × 1080 original, what ends up visible with nothing on top of it is a small fraction.
Free practical tip: drop a semi-transparent 1080 × 500 rectangle at the bottom of your timeline while you edit. It's ugly and it works. Then check the preview inside the app itself before posting — it's the only place you see the real UI over your real video.
The export settings I actually use
No mystery, and no made-up bitrate table. These are literally the parameters the make-vertical.com encoder exports every video with:
-c:v libx264 -preset veryfast -crf 21 -pix_fmt yuv420p
-c:a aac -b:a 160k
-movflags +faststart- CRF 21 instead of a fixed bitrate. You pin the quality and let the size follow: a static shot comes out small, a busy one comes out bigger. A fixed bitrate does the exact opposite, which is the opposite of what you want. 18 to 23 is the sane range; below 18 the file balloons and the platform re-encodes it anyway.
- yuv420p, always. Without it, some phones simply won't open the file.
- +faststart. Moves the MP4 index to the front so playback can start before the file finishes downloading. Costs nothing, noticeable on upload.
- AAC 160 kbps. Plenty for speech and background music. 320 kbps on a TikTok is throwing away megabytes.
- preset veryfast. Here I am making a trade: server speed in exchange for a few extra megabytes versus
slow. At a fixed CRF the visual quality doesn't change, only the file size. If you're exporting on your own laptop and aren't in a hurry, useslow.
Frequently asked questions
What resolution is 9:16?
9:16 is an aspect ratio, not a resolution: it describes the proportion between width and height. The standard resolution at that proportion is 1080 × 1920 pixels. 720 × 1280, 1440 × 2560 and 2160 × 3840 are also 9:16. For TikTok, Reels or Shorts, use 1080 × 1920.
How do I convert 16:9 to 9:16 without losing quality?
There is exactly one way to lose no image at all: don't crop. Put the whole 16:9 frame in at 1080 × 608 on a 1080 × 1920 canvas and fill above and below (blurred background, black or a colour). If you crop instead, you lose 68.4% of the frame by geometry alone. And if your source is 1080p, the crop is only 608 px wide and has to be stretched ×1.78 up to 1080 — that is where sharpness actually goes.
Why does my video look pixelated after going vertical?
Almost always upscaling. A 9:16 crop of a 1080p video is 608 × 1080 real pixels. Exporting that to 1080 × 1920 stretches it ×1.78, so each original pixel covers nearly two. The editor cannot invent detail it never had. Fix it by starting from a 4K source, or by not cropping and using a blurred background.
Should I use 1080 × 1920 or 720 × 1280?
1080 × 1920, unless your source can't feed it. Uploading 720 × 1280 to a platform that expects 1080 forces an upscale on their server, and you don't control that one. But if your real crop is 608 px wide, exporting at 720 upscales ×1.18 instead of ×1.78 — sometimes that genuinely looks better than forcing 1080.
Is 9:16 the same as 1080p?
No, and mixing them up causes most of the confusion here. 1080p means 1080 pixels of height in a horizontal 1920 × 1080 frame. In vertical 9:16, the 1080 is the width and 1920 is the height. Same two numbers, swapped. When someone says a vertical video is 1080p they mean 1080 × 1920.
Should I crop, or reshoot vertically?
If you haven't shot yet, shoot vertical or shoot 4K horizontal. From 4K, the 9:16 crop is 1215 px wide: it scales down to 1080 instead of up, so no scaling loss. If it's already shot in 1080p and can't be redone, a blurred background keeps the entire frame and avoids the upscale.
Keep going
You came for a number. Leave with the MP4.
Upload your horizontal video and decide on screen whether to keep the whole frame or chase the subject inside the 31.6%.
Convert my video to 9:16First one free · see pricing