How to format any video for youtube shorts 9:16
- Step 1Trim to your best 60 seconds first (optional but recommended) — The formatter keeps the first 60 seconds of whatever you give it. If your highlight is in the middle, cut it first with lossless-trimmer (instant, no re-encode) so the formatter's
-t 60starts on your chosen moment. - Step 2Drop the source clip onto the tool — Accepted containers:
.mp4,.mov,.mkv,.webm,.avi,.m4v,.ts. The file is loaded into the in-browser FFmpeg.wasm filesystem — nothing is uploaded. Free tier handles up to 1 GB per file; Pro 10 GB, Pro-media 100 GB. - Step 3Confirm the output panel — There are no options to set — the panel states the fixed behaviour: smart-crop + scale + trim to spec, audio re-encoded to AAC 128 kbps. The single Output panel is informational; the pipeline is locked to the Shorts spec.
- Step 4Run the format pass — JAD probes the source dimensions, computes the centered 9:16 crop, scales to 1080×1920 with Lanczos, applies
-t 60, and encodes H.264 CRF 20 + AAC. Encode time scales with clip length and your CPU — a 60-second 4K source typically takes longer than a 1080p one because every pixel is decoded then re-scaled. - Step 5Download the 1080×1920 MP4 — You get a single
out_*.mp4at 1080×1920, H.264/AAC, original frame rate preserved (no-ris applied). Save it and upload to YouTube directly from your phone or the Studio uploader. - Step 6Verify the crop kept your subject centered — Because the crop is fixed to the center, check that your subject was roughly mid-frame. If the action lived in a corner or to one side, the center crop will clip it — re-cut with video-cropper to pick the exact region, or use auto-reframe for content-aware tracking before formatting.
What the formatter does to your file
Every stage of the single FFmpeg.wasm pass, taken from the actual filter and encoder arguments. None of these are user-configurable — the spec is locked.
| Stage | What happens | Argument / filter | Configurable? |
|---|---|---|---|
| Crop | Dead-center crop to the 9:16 window — widest dimension that fits is kept, the rest is sliced symmetrically from both edges | crop=cropW:cropH:(in_w-cropW)/2:(in_h-cropH)/2 | No — always center |
| Scale | Resize the cropped frame to exactly 1080×1920 using the high-quality Lanczos resampler | scale=1080:1920:flags=lanczos | No — fixed 1080×1920 |
| Trim | Keep the first 60 seconds; everything after is dropped | -t 60 | No — always from start |
| Video encode | H.264, medium preset, CRF 20 (visually lossless-ish), 8-bit 4:2:0 for universal playback | -c:v libx264 -preset medium -crf 20 -pix_fmt yuv420p | No |
| Audio encode | Re-encode to AAC at 128 kbps regardless of source codec | -c:a aac -b:a 128k | No |
| Container | MP4 with the moov atom relocated to the front for instant streaming | -movflags +faststart | No |
| Frame rate | Preserved from the source — no fps conversion is applied | (no -r flag) | Passthrough |
Source aspect ratios and how they crop
Because the crop is centered, the geometry is predictable. cropW/cropH are rounded to even numbers before scaling.
| Source | What is kept | What is lost | Output |
|---|---|---|---|
| 16:9 landscape (1920×1080) | Center 607×1080 strip | ~68% of the width (left + right edges) | 1080×1920, subject must be centered |
| 1:1 square (1080×1080) | Center 608×1080 strip | ~44% of the width | 1080×1920 |
| 4:5 portrait (1080×1350) | Center 759×1350 strip | ~30% of the width | 1080×1920 |
| 9:16 already (1080×1920) | Full frame (no crop needed) | Nothing — only a re-scale + re-encode | 1080×1920 |
| Tall 9:21 (e.g. cropped phone clip) | Center 9:16 height window | Top + bottom slivers | 1080×1920 |
Cookbook
Real source-to-Short conversions showing the centered crop math and the 60-second cut. Dimensions are from the actual probe + filter chain.
1080p landscape screen recording → Short
A typical 16:9 tutorial export. The center 9:16 column is kept; anything in the far left or right thirds is cropped. The output is a clean 1080×1920 MP4.
Source: tutorial.mp4 1920×1080 4m12s H.264/AAC
Probe → 16:9 (1.778), target 9:16 (0.5625)
Crop: cropH=1080 cropW=round(1080×0.5625)=608 → 608×1080
offset x=(1920-608)/2=656 y=0 (center)
Scale: 608×1080 → 1080×1920 (lanczos)
Trim: -t 60 (keeps 0:00–1:00)
Output: out_x9k2.mp4 1080×1920 60s H.264 CRF20 / AAC 128kSquare 1:1 promo clip → Short
A 1:1 ad cut. The center vertical strip is taken; the left and right ~22% each are dropped, so keep your logo/text within the middle 60% of a square source.
Source: promo.mov 1080×1080 0m45s
Probe → 1:1 (1.0), target 9:16 (0.5625)
Crop: cropH=1080 cropW=round(1080×0.5625)=608 → 608×1080
offset x=(1080-608)/2=236 y=0
Scale: 608×1080 → 1080×1920
Trim: -t 60 (clip is 45s, untouched)
Output: 1080×1920 MP4, full 45s preserved5-minute vlog where the highlight is at 3:00
The formatter always keeps the first 60 seconds, so a mid-clip highlight is lost. Pre-trim with the lossless trimmer to put your moment at the start, then format.
Wrong (one step): vlog.mp4 (5:00) → formatter → keeps 0:00–1:00 (intro only) Right (two steps): 1. lossless-trimmer: cut 2:45–3:45 → highlight.mp4 (instant, -c copy) 2. youtube-shorts-formatter: highlight.mp4 → 1080×1920, -t 60 Result: the 3:00 moment is now the Short.
Vertical phone clip that's already portrait
A 9:16 phone capture needs no crop — the tool only re-scales to the canonical 1080×1920 and re-encodes to the Shorts H.264/AAC spec, normalising odd phone resolutions (e.g. 1080×2340) to the clean 9:16 expected by uploaders.
Source: phone.mp4 1080×1920 0m38s (already 9:16) Probe → 0.5625 == target, crop is full-frame Crop: 608... no — sourceAr==targetAr → cropW=1080 cropH=1920 Scale: 1080×1920 → 1080×1920 (identity scale, re-encode) Trim: -t 60 (38s, untouched) Output: spec-normalised 1080×1920 H.264 CRF20 / AAC
4K landscape camera footage → Short
A 3840×2160 source. The center 9:16 crop is 1215×2160, downscaled to 1080×1920. Expect a longer encode because every 4K pixel is decoded and resampled in WASM.
Source: camera.mov 3840×2160 2m00s HEVC/PCM
Probe → 16:9, target 9:16
Crop: cropH=2160 cropW=round(2160×0.5625)=1216 → 1216×2160
offset x=(3840-1216)/2=1312 y=0
Scale: 1216×2160 → 1080×1920 (lanczos downscale)
Trim: -t 60
Audio: PCM → AAC 128k (re-encode)
Output: 1080×1920 H.264 MP4 (slower encode — 4K decode)Edge cases and what actually happens
Your subject is off to one side of a landscape frame
Cropped outThe crop is fixed to the center of the frame, so a speaker standing in the left third of a 16:9 shot gets sliced off. The formatter has no tracking or face detection. Use auto-reframe for content-aware reframing, or video-cropper to pick the exact region before formatting.
Clip is longer than 60 seconds and the good part is later
By design-t 60 keeps only the first minute from the start of the file. Anything after 1:00 is discarded with no warning. Pre-cut the segment you want with lossless-trimmer so the formatter's first 60 seconds is the part you care about.
Source already has black bars (letterboxed 16:9 inside a vertical frame)
PreservedThe formatter crops geometrically — it does not detect or remove existing letterbox/pillarbox bars. Those black bars are treated as picture and cropped along with everything else. Strip them first with remove black bars using the cropper, then format.
Source is wider than 9:16 with important on-screen text at the edges
Cropped outCaptions or lower-thirds near the left/right edges of a landscape clip fall outside the centered 9:16 window. There is no safe-zone or padding option. Either re-position the text upstream, or burn fresh captions onto the formatted Short with subtitle-burner.
Output has no black bars but you expected pillarboxing to keep the full frame
ExpectedThis tool crops to fill 9:16 — it never adds bars to fit a landscape frame whole. If you specifically want the entire horizontal image preserved (bars or blur-fill), this formatter does not do that; the closest available behaviour is a crop, so plan your composition around the centered window.
Source frame rate is unusual (e.g. 50 fps or variable)
PassthroughNo -r flag is applied, so the source fps is preserved. YouTube Shorts accepts 24/25/30/48/50/60 fps. Variable-frame-rate (VFR) phone captures are re-encoded to a constant timeline by libx264, which is generally what you want for upload.
File exceeds your tier's size limit
RejectedFree is capped at 1 GB per file (1 file at a time), Pro 10 GB (5 files), Pro-media 100 GB (50 files), Developer 100 GB (unlimited files). A source over your limit is refused before processing. There is no minutes/duration cap — only file size and batch count.
Audio is in an unusual codec or there is no audio track
SupportedAudio is always re-encoded to AAC 128 kbps, so PCM, Opus, AC-3, and other source codecs convert cleanly. A video with no audio track produces a silent Short — FFmpeg simply has nothing to map to AAC, which is fine for upload.
Source dimensions can't be read
ErrorIf the probe can't determine width/height (a corrupt header or unsupported container variant), the tool throws "Could not determine video dimensions." Re-export the source to a clean MP4/MOV, or remux it first, then retry.
You want a different aspect or platform target
Wrong toolThis formatter is locked to 9:16 / 1080×1920 / 60s for Shorts. For square or 4:5 Instagram feed use instagram-feed-formatter; for 16:9 / 2:20 X (Twitter) use twitter-x-formatter.
Frequently asked questions
What exactly does the Shorts formatter output?
A single MP4 at 1080×1920 (9:16), H.264 video (libx264, medium preset, CRF 20, yuv420p) with AAC audio at 128 kbps, capped at 60 seconds, with +faststart set for instant streaming. The source frame rate is preserved. These are fixed — there are no quality, bitrate, or duration sliders.
Is the crop subject-aware or does it track faces?
No. It is a fixed center crop — the 9:16 window is taken from the exact middle of the frame. Whatever sits in the center is kept; the side edges are sliced off symmetrically. For content-aware reframing that follows a speaker, use auto-reframe instead.
Can I pick which part of the video becomes the Short?
Not in this tool — it always keeps the first 60 seconds. To choose a different segment, trim it first with lossless-trimmer (no re-encode, instant) so your chosen moment starts at 0:00, then format.
Will it add black bars to keep my whole landscape frame?
No. The formatter crops to fill 9:16; it never letterboxes or pillarboxes, and there is no blur-fill background option. If your subject was off-center it will be cropped — re-compose with video-cropper or auto-reframe first.
What input formats does it accept?
MP4, MOV, MKV, WebM, AVI, M4V, and TS containers with the common video codecs FFmpeg.wasm can decode. Output is always MP4. Unknown extensions are treated as MP4 on input.
Does my video get uploaded anywhere?
No. The entire crop/scale/trim/encode pipeline runs in your browser via FFmpeg compiled to WebAssembly. Your raw footage never leaves your device, which makes it safe for embargoed, client, or unpublished material.
How long can my source video be?
As long as you like — there is no duration cap, only a file-size limit (1 GB Free, 10 GB Pro, 100 GB Pro-media/Developer). The output is trimmed to 60 seconds regardless, but you can feed in a multi-hour file; only its first minute will be formatted.
Why is the output exactly 1080×1920 and not, say, 720×1280?
The scale filter is hard-coded to the YouTube-recommended Shorts resolution of 1080×1920. There is no resolution option. If you need a smaller file for bandwidth reasons, run the result through web-optimizer afterwards.
Will my audio be downgraded?
Audio is always re-encoded to AAC at 128 kbps. If your source was higher-bitrate, it is recompressed; if it was lossless (PCM/FLAC) it becomes lossy AAC. 128 kbps AAC is transparent for typical Shorts content (speech and music) and is what YouTube would re-encode to anyway.
Does YouTube re-compress my Short after I upload it?
Yes — YouTube re-encodes every upload for its streaming pipeline. Uploading a high-quality CRF 20 H.264 source gives YouTube's encoder clean material to work from, which produces a better-looking final Short than uploading something already heavily compressed.
My subject's head gets cut off — what do I do?
The center crop assumes your subject is roughly mid-frame and mid-height. If the head sits high in a landscape shot it can clip at the top after scaling. Use video-cropper to set the exact 9:16 region (it has a visual region picker), then this tool will only re-scale it.
Can I batch several clips into Shorts at once?
The Shorts formatter processes one file per run (acceptsMultiple is off for this tool). Higher tiers raise the batch-file ceiling for tools that support batching, but for this formatter you run clips one at a time. Pre-trim each clip with lossless-trimmer to queue them efficiently.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.