How to crop widescreen video to square with no reframing
- Step 1Work out the square side — For a 16:9 source the largest square equals the frame height: 1920×1080 → side 1080; 1280×720 → side 720; 3840×2160 → side 2160. The square's Width and Height both equal that side. No scaling is involved — you're keeping native pixels.
- Step 2Choose the horizontal offset — Centre: X = (sourceWidth − side) / 2 (e.g. (1920−1080)/2 = 420). To favour a subject on one side, increase X to move the square right or decrease it to move left. Y stays 0 because the square already uses the full height.
- Step 3Drop the file and load the frame — The picker paints frame 0 so you can position the square over your subject. If your subject moves a lot, pick a frame (or an X offset) that keeps them in the square for the whole clip — a static square can't track.
- Step 4Place the square — draw or type — Drag the picker box to a square over the subject (the readout shows the size and offset), or type the numbers directly. From 1080p centred:
X=420, Y=0, Width=1080, Height=1080. - Step 5Run the crop — JAD applies
crop=W:H:X:Y(already even for a square) and re-encodes to MP4, H.264, CRF 20, audio copied. The output is exactly your square at native resolution — no padding, no scale, no tracking. - Step 6Verify the subject stays in frame end-to-end — Play the whole clip. If the subject walks out of the static square, re-run with a different X, crop a wider window, or switch to auto-reframe for tracking. For a guaranteed 1080×1080 with padding when needed, use the Instagram feed formatter.
Largest square from common 16:9 sources
The biggest square you can crop from a 16:9 frame equals its height. Centre offset = (width − side) / 2. No scaling — these are native-pixel crops.
| Source (16:9) | Square side | Centre X | Crop (X/Y/W/H) |
|---|---|---|---|
| 1280 × 720 | 720 | 280 | 280 / 0 / 720 / 720 |
| 1920 × 1080 | 1080 | 420 | 420 / 0 / 1080 / 1080 |
| 2560 × 1440 | 1440 | 560 | 560 / 0 / 1440 / 1440 |
| 3840 × 2160 (4K) | 2160 | 840 | 840 / 0 / 2160 / 2160 |
Manual square vs auto-reframe vs formatter
Three ways to get a square clip. This tool is the manual, no-tracking option. Pick by how much control versus automation you want.
| Need | Tool | Behaviour |
|---|---|---|
| Exact, fixed square I place myself | This cropper | Static rectangle; no tracking, no scale, no pad |
| Follow a moving subject into a square | auto-reframe | Tracks the subject and re-centres the crop over time |
| Guaranteed 1080×1080 output, any source | instagram-feed-formatter | Crops/scales/pads to the fixed platform size |
| 1:1 Instagram-grid-safe square | Solution make-square-video-1-1-for-instagram-feed | Square reframe tuned for the feed |
| Upscale the square afterwards | video-resizer | Lanczos resize to a target resolution |
Cookbook
Square-crop recipes from 16:9 sources. Each shows the source, the square side, the offset, and the FFmpeg filter.
Centred 1080×1080 square from a 1080p clip
The classic case: 1920×1080 to a centred square. Side = 1080; centre offset = (1920−1080)/2 = 420.
Source: 1920 × 1080 Inputs: X=420 Y=0 Width=1080 Height=1080 FFmpeg runs: crop=1080:1080:420:0 Result: 1080×1080 MP4 — centred square, native resolution.
Square biased toward a right-side speaker
Your presenter stands in the right third of a 1920×1080 frame. A centred square (X=420 keeps 420–1500) cuts them off. Slide the square right.
Source: 1920 × 1080, speaker around x≈1500 Inputs: X=840 Y=0 Width=1080 Height=1080 (keeps 840..1920 — speaker comfortably inside) FFmpeg runs: crop=1080:1080:840:0 Result: 1080×1080 MP4 with the speaker framed.
720×720 square from a 720p source
Smaller source, same math. Side = 720; centre offset = (1280−720)/2 = 280. No scaling, so the square is native 720p quality.
Source: 1280 × 720 Inputs: X=280 Y=0 Width=720 Height=720 FFmpeg runs: crop=720:720:280:0 Result: 720×720 MP4 — centred square.
4K square, then downscale for delivery
Crop a 2160×2160 square from 4K for maximum quality, then resize to 1080×1080 separately if the destination wants 1080. Cropping first preserves detail.
Source: 3840 × 2160
Inputs: X=840 Y=0 Width=2160 Height=2160
FFmpeg runs:
crop=2160:2160:840:0
Result: 2160×2160 MP4. Then video-resizer → 1080×1080
for a crisp downscaled square.Left-biased square to keep an on-screen lower-left caption
A caption sits in the lower-left of the widescreen. Slide the square left so the caption survives the crop.
Source: 1920 × 1080, caption around x≈200 Inputs: X=0 Y=0 Width=1080 Height=1080 (keeps 0..1080 — left caption preserved) FFmpeg runs: crop=1080:1080:0:0 Result: 1080×1080 MP4 with the left caption in frame.
Edge cases and what actually happens
Subject moves across the frame during the clip
Wrong toolA manual square is static — it can't follow a subject who walks left-to-right. They'll exit the square. If you need the square to track the subject, use auto-reframe, which re-centres the crop over time. The manual crop is for fixed framing where the subject stays put.
You expected the tool to auto-compute the square
Not availableThere's no aspect preset that calculates the square for you — you set Width = Height = source height and choose X. That's deliberate: this is the manual alternative to auto-reframe. For one-click square output regardless of source, use the Instagram feed formatter.
Square side larger than the source height (typo)
Crop failedThe square can't be taller than the frame. If you set Height greater than the source height (or X+Width past the width), the run aborts with Crop failed. For a 16:9 source the side equals the height — 1080 for 1080p — not more.
Result is a small square and you want 1080×1080
By designA 720p source gives at most a 720×720 square — the cropper never upscales. To reach 1080×1080, crop the largest square here then upscale with video-resizer, accepting that upscaling softens detail.
You want the square padded into a 1:1 canvas instead of cropped
Wrong toolCropping discards the side thirds; it never pads the full frame into a square with bars. If you want to keep the whole widescreen content inside a square (letterboxed), that's a pad operation — use the Instagram feed formatter, which can fit-and-pad to a fixed size.
Odd source height (e.g. 1080 is fine, but 1079)
By designWidth/Height round down to even, so an odd target snaps even and the square stays valid for H.264. Standard 16:9 heights (720, 1080, 1440, 2160) are already even, so you'll usually hit them exactly.
Source is already square or vertical
ExpectedIf the source isn't 16:9, the 'largest square = height' rule still holds but the offset differs. A 1080×1920 vertical clip's largest square is 1080×1080 placed by Y; a 1080×1080 source is already square. Adjust which axis you offset accordingly.
Two people on opposite sides of the widescreen
Trade-offA single square can't contain two subjects at opposite edges of a 16:9 frame — the square is narrower than the gap between them. Either crop two squares (one per person) or use auto-reframe, which can handle a wider reframe. There's no way around the geometry with one static square.
Audio-synced edit must keep exact timing
SupportedAudio is stream-copied (-c:a copy), so a beat-matched square clip keeps its exact soundtrack and sync. The crop changes only the visible frame.
First frame doesn't represent the subject's position
ExpectedThe picker shows frame 0. If your subject is centred at the start but moves later, framing on frame 0 may not hold. Choose an X that keeps them in for the whole clip, or trim to the relevant section first with lossless-trimmer.
Frequently asked questions
How do I crop a 16:9 video to a square?
Set Width = Height = the source height (the largest square that fits), and choose the horizontal offset X. From 1920×1080, that's crop=1080:1080:420:0 for a centred square (X = (1920−1080)/2 = 420). The cropper keeps native pixels — no scaling involved.
Why use this instead of auto-reframe?
When you want full manual control. Auto-reframe tracks a subject and can drift, breathe, or lock onto the wrong face. This tool places one fixed square exactly where you say, identically every time — ideal when auto-reframe got it wrong or you want a deterministic, repeatable square.
Does it follow my subject if they move?
No — the square is static for the whole clip. A subject who walks across the frame will exit a fixed square. For tracking that re-centres over time, use auto-reframe. The manual crop is for subjects who stay roughly in place.
Can I make the square favour a subject on one side?
Yes. Slide the square horizontally by changing X. For a speaker on the right of a 1920×1080 frame, increase X (e.g. crop=1080:1080:840:0 keeps columns 840–1920). The picker lets you drag the square over them and read the offset.
Will the square be scaled to a standard size?
No — the crop keeps native pixels at the square's side length. From 1080p you get 1080×1080; from 720p you get 720×720. To reach a specific size like 1080×1080 from a smaller source, follow with video-resizer (upscaling softens detail).
Can I keep the whole widescreen content in a square (padded)?
Not with this tool — cropping discards the side thirds. To fit the full widescreen frame inside a 1:1 canvas with bars, use a fit-and-pad operation in the Instagram feed formatter; the cropper never pads.
What's the largest square I can get from my video?
For a 16:9 source it equals the frame height: 1280×720 → 720×720, 1920×1080 → 1080×1080, 3840×2160 → 2160×2160. You can crop a smaller square anywhere in the frame, but not a larger one than the height.
Is my video uploaded?
No. The crop runs in your browser with WebAssembly FFmpeg — the file never leaves your machine. The Free tier squares files up to 1 GB locally; Pro and above handle 10–100 GB.
What if two people are on opposite sides of the frame?
One square can't hold both if they're at opposite edges — the square is narrower than the gap. Crop two separate squares, or use auto-reframe for a wider, tracked reframe. The geometry of a single fixed square can't be worked around.
Does cropping to square change the audio?
No. Audio is stream-copied (-c:a copy), so a beat-synced or narrated clip keeps its exact soundtrack and sync. Only the visible frame is cropped.
What quality and format is the output?
An MP4 with H.264 video at a fixed CRF 20 (visually high quality) and the original audio copied in. There's no quality slider or format selector. To convert or set a bitrate afterwards, use video-transcoder or video-bitrate-set.
Is this the right tool for an Instagram square post?
It works if you want manual control over exactly which square you keep — then crop to 1080×1080. For a feed-tuned square with safe-zone handling, see the solution make-square-video-1-1-for-instagram-feed; for guaranteed fixed-size output, the Instagram feed formatter.
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.