How to convert 16:9 horizontal video to 9:16 vertical
- Step 1Open the auto-reframe tool and drop your 16:9 clip — Load the auto-reframe tool and drag in your widescreen file. Accepted inputs are
.mp4,.mov,.mkv,.webm,.avi,.m4v, and.ts. The tool reads width, height and duration with a lightweight<video>probe (~50 ms) before any FFmpeg work, so it knows your source is 16:9. - Step 2Confirm the Ratio is set to 9:16 — The only control is a Ratio dropdown with three values:
9:16,1:1, and4:5. For TikTok leave it on the default9:16. There is no 16:9 output option here (that is the source, not a target) and no custom ratio — 9:16, 1:1 and 4:5 are the three the tool ships. - Step 3Pre-centre your subject if it is off to one side — The crop is fixed to the geometric centre. If your speaker or product sits in the left or right third of the 16:9 frame, they will be cropped out. Re-frame the source first with the video cropper to slide the keep-region, then run auto-reframe — or just crop straight to 9:16 in the cropper if you need pixel-exact control.
- Step 4Run the reframe — Auto-reframe applies
crop=<w>:<h>:(in_w-w)/2:(in_h-h)/2to take the centre strip, thenscale=<outW>:<outH>:flags=lanczos. Output width is capped at 1080, so a 1920×1080 source becomes 1080×1920. Encoding is libx264-preset medium -crf 20with AAC audio at 128 kbps. - Step 5Save the MP4 — The result is an
.mp4(H.264/AAC). On supported browsers you can stream it straight to a disk location; otherwise it downloads as a blob. The metrics line shows input bytes → output bytes and elapsed time. - Step 6Upload to TikTok — Upload the 1080×1920 MP4 directly. TikTok re-encodes on ingest regardless, but feeding it correctly-sized 9:16 source avoids the in-app pillarbox and gives the platform clean pixels to compress from. Add captions afterwards with the subtitle burner if you want hardcoded text that survives the re-encode.
What auto-reframe does to a 16:9 source at each ratio
Crop and output geometry computed from a 1920×1080 master. The crop is always centred; output width is capped at 1080 and both dimensions are forced even for codec compatibility.
| Ratio setting | Crop taken from 1920×1080 | Output size | What is discarded |
|---|---|---|---|
9:16 (TikTok default) | Full height 1080, width 608 → 608×1080 centre strip | 608×1080 scaled down to fit 1080 cap → ~608×1080 (already ≤1080 wide, so output is 608×1080) | Left and right ~656 px each — the outer two-thirds of the frame |
1:1 | Full height 1080, width 1080 → 1080×1080 centre square | 1080×1080 | Left and right ~420 px each |
4:5 | Full height 1080, width 864 → 864×1080 centre block | 864×1080 | Left and right ~528 px each |
Output encode settings (fixed, not user-adjustable)
Auto-reframe always re-encodes — there is no stream-copy path because cropping changes pixel geometry. These values are hard-coded in the processor.
| Parameter | Value | Note |
|---|---|---|
| Video codec | H.264 (libx264) | Software encode via FFmpeg.wasm — not a hardware/WebCodecs path for this tool |
| Quality | CRF 20, -preset medium | Visually near-lossless; not user-tunable here |
| Scaler | Lanczos (flags=lanczos) | Applied on the downscale to 1080 width cap |
| Audio | AAC, 128 kbps | Re-encoded; original audio track is carried, no track selection |
| Container | MP4 | Always .mp4 output regardless of input container |
Cookbook
Concrete 16:9 → 9:16 conversions for TikTok, with the exact crop you should expect. Dimensions assume a 1080p master unless noted.
Centred talking-head — the ideal case
A creator framed dead-centre against a backdrop is exactly what the centre crop is built for. The outer thirds are background, so cropping them away loses nothing important.
Source: 1920x1080 (16:9), speaker centred Ratio: 9:16 Crop: 608x1080 from x=656, y=0 (centre strip) Scale: lanczos -> 608x1080 (under 1080 width cap) Output: 608x1080 .mp4, H.264 CRF 20, AAC 128k Result: speaker fills a clean 9:16 frame, no pillarbox
4K master down to TikTok vertical
A 3840×2160 source is cropped to the centre 9:16 strip, then the width cap pulls it down to 1080. You get a 1080-wide vertical from 4K source — the extra resolution helps the Lanczos downscale look sharp.
Source: 3840x2160 (16:9 UHD) Ratio: 9:16 Centre strip: 1215x2160 (full height, 9:16 width) Width cap: 1080 -> output 1080x1920 Output: 1080x1920 .mp4 Note: downscaling from 2160 to 1920 tall keeps detail crisp
Subject on the left edge — what goes wrong
When the talent stands in the left third of a 16:9 interview, the centre crop slices them off. This is the single most common disappointment with a centre-crop tool. The fix is to re-position the keep-region first.
Source: 1920x1080, speaker in LEFT third (x ~ 200-700)
Ratio: 9:16 -> crop window x=656..1264 (centre)
Result: speaker partly/fully OUTSIDE the crop -> cut off
Fix:
1. video-cropper: crop a 9:16 window over the speaker
(or slide a wider keep-region left), then
2. run auto-reframe on the re-centred clip if neededGameplay capture with centred action
Most gameplay keeps the reticle and player centred, so a 9:16 centre crop keeps the action and drops the HUD edges. Check that your minimap or score (usually a corner) is not load-bearing before cropping.
Source: 2560x1440 gameplay (16:9) Ratio: 9:16 Centre strip: 810x1440 (full height) Width cap: output 810x1440 Dropped: left/right HUD corners (minimap, ammo) Tip: if HUD matters, crop manually to keep that corner
MKV screen recording to TikTok
Screen recorders (OBS, ShareX) often emit MKV. Auto-reframe accepts MKV and outputs MP4 directly, so you skip a separate remux step.
Source: screen-capture.mkv 1920x1080 Ratio: 9:16 Input accepted: .mkv (no pre-conversion needed) Output: 608x1080 .mp4 H.264/AAC Workflow: drop .mkv -> 9:16 -> upload to TikTok
Edge cases and what actually happens
Off-centre subject gets cropped out
By designThe crop window is fixed to the geometric centre: crop=w:h:(in_w-w)/2:(in_h-h)/2. There is no saliency detection or subject tracking despite older marketing copy. A subject in the left or right third of a 16:9 frame will be partly or fully cropped. Re-frame first with the video cropper, which lets you place the crop rectangle anywhere.
Source is already vertical or narrower than 9:16
Top/bottom cropIf the source aspect ratio is narrower (taller) than 9:16, the tool keeps full width and crops top and bottom instead of the sides. A 9:16 source fed in at 9:16 is essentially a re-encode at the same shape. For a portrait source you almost never need auto-reframe — it just re-encodes.
Dimensions could not be determined
ErrorThe processor probes the source and throws Could not determine video dimensions if width or height comes back empty. This happens with corrupt headers or unusual containers. Re-mux or transcode the source first with the video transcoder, then reframe.
Free tier cannot run this tool
Upgrade requiredAuto-reframe is a Pro-tier tool (minimum tier Pro). On Free tier the video streaming ceiling is 0, so the job will not run. Pro allows up to 10 GB per file and 5 files; Pro+Media up to 100 GB and 50 files; Developer 100 GB with unlimited batch count. There is no duration cap — limits are file size and batch count only.
You expected a 16:9 output option
Not offeredThe Ratio dropdown offers only 9:16, 1:1, and 4:5 — there is no 16:9 target (that is your source). To keep 16:9 but resize, use the video resizer. To produce 16:9 for X/Twitter, use the twitter-x-formatter.
Output looks softer than the source
ExpectedCropping to a 608-wide strip then re-encoding at CRF 20 is near-lossless but not lossless. If the source was already low-bitrate, the second encode compounds it. Start from the highest-quality master you have; a 4K source down to 1080-wide vertical looks noticeably sharper than a 720p source.
Variable frame rate (VFR) phone footage
SupportedVFR sources (common from phones) are accepted and re-encoded. The output is constant-frame-rate H.264. Audio/video sync is preserved through the FFmpeg pipeline; if you see drift it usually originates in the source container — re-mux with the lossless trimmer at the keyframe boundary first.
Audio track is re-encoded to AAC
By designAudio is always re-encoded to AAC at 128 kbps; there is no stream-copy or codec choice. For most social clips this is inaudible. If you need a specific audio bitrate or to strip audio, handle that as a separate step — auto-reframe is a geometry tool, not an audio tool.
Captions or graphics near the frame edges
CroppedBurned-in captions or lower-thirds that sit near the left/right edges of a 16:9 frame fall outside the centre 9:16 strip and are cut. Add captions AFTER reframing — burn them with the subtitle burner onto the finished 9:16 clip so they sit inside the visible area.
Frequently asked questions
Does auto-reframe track my subject across the frame?
No. It takes a fixed centre crop — the crop window sits at the geometric middle of every frame and never moves. There is no AI saliency model, face detection, or panning, despite some older descriptions. If your subject stays near the centre of the 16:9 frame, the result is great; if they roam, re-frame first with the video cropper.
What output size do I get for TikTok?
From a 1080p 16:9 master at the 9:16 setting you get a 608×1080 vertical (the full-height centre strip). From a 4K master you get 1080×1920 because the width cap is 1080. Either uploads cleanly to TikTok, which expects 9:16 / 1080×1920 and re-encodes on ingest anyway.
Why is my output only 608 pixels wide and not 1080?
Because output width is capped at the lesser of 1080 and the crop width. A 1920×1080 source produces a 608-wide centre strip at 9:16, which is already under 1080, so the tool does not upscale it to 1080. To get a true 1080×1920 result, start from a higher-resolution master (1440p or 4K).
Can I pick where the crop happens?
Not in this tool — the crop is always centred. The only control is the Ratio dropdown (9:16, 1:1, 4:5). For an off-centre or pixel-exact crop, use the video cropper, which lets you position the crop rectangle and even crop directly to a square or vertical shape.
Does it upload my video anywhere?
No. Processing runs entirely in your browser via FFmpeg.wasm. The footage never leaves your machine, which matters for unreleased or client-confidential clips. The only thing recorded server-side is a usage counter for dashboard stats — no file content.
What input formats can I drop in?
MP4, MOV, MKV, WEBM, AVI, M4V, and TS, plus anything the browser reports as video/*. The output is always MP4 (H.264/AAC) regardless of which container you started with, so an MKV screen recording reframes the same as an exported MP4.
Is the output re-encoded or is it a lossless crop?
It is re-encoded — cropping changes pixel geometry, so there is no stream-copy path. Encoding is libx264 at CRF 20, -preset medium, with AAC audio at 128 kbps. The quality is near-lossless from a good source. If you need a truly lossless cut (trim without re-encode), that is a different operation — see the lossless trimmer.
Will TikTok degrade my clip when I upload it?
TikTok re-encodes everything on ingest, so some compression is unavoidable. Feeding it correctly-sized 9:16 source (rather than a 16:9 clip it has to pillarbox) means the platform compresses clean, full-frame pixels — which generally looks better than letting the app crop or bar your video.
Can I add captions before reframing?
Add them after. Captions near the left/right edges of a 16:9 frame get cropped away by the centre 9:16 crop. Reframe first, then burn captions onto the finished vertical with the subtitle burner so the text lands inside the visible 9:16 area and survives TikTok's re-encode.
Is there a length limit on my clip?
No duration cap — the video tiers limit by file size and batch count, not minutes. Pro allows up to 10 GB per file, Pro+Media up to 100 GB, Developer 100 GB with unlimited batch. A long clip mainly costs processing time in the browser.
What if I want a square or 4:5 cut instead of 9:16?
Switch the Ratio dropdown to 1:1 (square) or 4:5 (portrait feed). All three use the same centre-crop logic. For Instagram-specific square/portrait formatting with platform presets, the instagram-feed-formatter is purpose-built for 1:1 and 4:5.
My subject got cut off — how do I rescue the clip?
Use the video cropper instead. Place a 9:16 crop rectangle directly over your subject wherever they sit in the frame. The cropper gives you full positional control, which auto-reframe (centre-only) does not. If the subject moves across the shot, you may need to cut it into segments and crop each.
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.