If your video or image looks stretched, squished, or boxed by black bars, this guide shows exactly how to fix aspect ratio problems without guesswork. You’ll get quick diagnoses, editor-specific steps (Premiere, Final Cut, Resolve), bulletproof ffmpeg
commands, and CSS that prevents distortion on the web.
Tool: Double-check math with an Aspect Ratio Calculator before you crop or export.
Key takeaways
- Match intent first: Do you want to fill the frame (crop) or preserve everything (letterbox/pillarbox)?
- Square pixels win: Most modern workflows use PAR 1:1. Wrong PAR/DAR flags cause “squish.”
- Set timeline/canvas before editing: Lock the project to the final ratio (16:9, 9:16, 1:1, 4:5, etc.).
- Don’t distort on the web: Use CSS
aspect-ratio
plusobject-fit
—never stretch images.
Quick diagnosis (3 steps)
- Compute the ratio: width ÷ height. ≈1.777 → 16:9, ≈0.5625 → 9:16, 1.0 → square.
- Check the canvas/timeline: Does the project match your target output ratio?
- Decide fill vs preserve: Crop to fill, or pad (letterbox/pillarbox) to preserve.
Common symptoms & instant fixes
Symptom | Likely cause | Instant fix |
---|---|---|
Stretched/squished video | Wrong pixel/display aspect ratio | ffmpeg -vf "setsar=1,setdar=16/9" (adjust to 9/16, 1/1, etc.) |
Black bars (letterbox/pillarbox) | Canvas and media ratio mismatch | Export to the target ratio; or pad intentionally with pad filter |
Vertical recorded sideways | Rotation metadata ignored | ffmpeg -vf "transpose=1" or rotate in your NLE |
Web images look warped | Fixed width/height stretching | Use CSS aspect-ratio & object-fit ; remove hard heights |
How to fix in popular editors
Adobe Premiere Pro
- Set sequence correctly: Sequence → Sequence Settings → choose a resolution that matches your output ratio (e.g., 1920×1080 for 16:9 or 1080×1920 for 9:16).
- Interpret footage: Right-click clip in Project → Modify → Interpret Footage → set Pixel Aspect Ratio = Square (1.0) unless you intentionally use anamorphic.
- Fit safely: In timeline, right-click clip → Set to Frame Size (preserves quality better than Scale to Frame Size).
- Crop vs letterbox: Use the Crop effect to fill, or add bars via an adjustment layer for a clean 2.39:1 look.
- Export: File → Export → Media → H.264 preset with the exact pixel dimensions of your target ratio.
Final Cut Pro
- Project format: Select the project → Modify → set format & resolution (1080p for 16:9, custom 1080×1920 for 9:16, etc.).
- Spatial Conform: In the Inspector, choose Fit (preserve), Fill (crop to fill), or None (source scale).
- Titles/graphics: Build for the same ratio to avoid edge cuts.
DaVinci Resolve
- Timeline ratio first: Project Settings → Master Settings → set resolution to your target ratio.
- Input scaling: Image Scaling → pick “Scale entire image to fit” (preserve) or “Scale full frame with crop” (fill).
- Deliver: Use output dimensions that match the timeline; avoid surprise bars.
One-line FFmpeg solutions
Letterbox to 1920×1080 (preserve everything):
ffmpeg -i in.mp4 -vf "scale=1920:-2:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:a copy out_1080p_letterbox.mp4
Center-crop to 16:9 (fill the frame):
# width-limited crop
ffmpeg -i in.mp4 -vf "crop=iw:iw*9/16" -c:a copy out_16x9_crop.mp4
# height-limited crop
ffmpeg -i in.mp4 -vf "crop=ih*16/9:ih" -c:a copy out_16x9_crop_alt.mp4
Fix wrong pixel/display aspect flags:
ffmpeg -i in.mp4 -vf "setsar=1,setdar=16/9" -c:a copy out_fixed_flags.mp4
Rotate vertical recorded sideways (90° clockwise):
ffmpeg -i in.mp4 -vf "transpose=1" -c:a copy out_rotated.mp4
Perfect aspect ratio on websites (CSS)
Modern & simple: use the aspect-ratio
property.
.media-16x9 { aspect-ratio: 16 / 9; width: 100%; }
.media-9x16 { aspect-ratio: 9 / 16; width: 100%; }
.media-1x1 { aspect-ratio: 1 / 1; width: 100%; }
Responsive, no distortion:
img.responsive {
width: 100%;
height: auto; /* preserve aspect ratio */
object-fit: cover; /* or 'contain' to avoid cropping */
}
Responsive video embed (padding hack works everywhere):
.embed-16x9 { position: relative; width: 100%; padding-top: 56.25%; }
.embed-16x9 iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
Images: quick Photoshop/Canva fixes
- Maintain ratio while resizing: In Photoshop, Image → Image Size with “Constrain Proportions” on; in Canva, use locked padlock.
- Crop to target ratio: Set the crop tool to 16:9, 9:16, 1:1, or 4:5 and crop deliberately (mind the subject).
- Add letterbox/pillarbox: Use Canvas Size to extend background to your final dimensions (match your page color for seamless display).
OBS/streaming canvas tips
- Base (Canvas) Resolution: set to your intended ratio (1920×1080 or 1080×1920 for vertical).
- Output (Scaled): match your base or scale cleanly; avoid odd intermediary sizes.
- Source transform: right-click source → Transform → Fit to screen (don’t stretch unless intentional).
Quick reference: common aspect ratios
Ratio | Landscape examples | Portrait examples |
---|---|---|
16:9 | 1920×1080, 3840×2160 | 1080×1920 |
1:1 | 1080×1080 | — |
4:5 | — | 1080×1350 |
2.39:1 | 3840×1607 (inside 3840×2160) | — |
FAQ
How do I remove black bars without distorting?
Either crop to fill (you’ll lose edges) or pad intentionally (letterbox/pillarbox) to preserve the entire image. Don’t stretch.
Why does YouTube add black bars?
Your export ratio doesn’t match the surface: 16:9 for long-form, 9:16 for Shorts. Re-export to the correct ratio and bars disappear.
My video looks squished—what’s wrong?
Usually a pixel aspect (PAR) or display aspect (DAR) mismatch. Re-interpret footage to Square Pixels (1.0) and ensure the timeline/export use the intended ratio.
What’s the fastest single command to fix aspect ratio problems?
Try: ffmpeg -vf "setsar=1,setdar=16/9"
(or 9/16
for vertical). For platform-perfect fits, combine with crop
or pad
.
YouTube & social: export ratios that never surprise you
If a platform adds bars: your export ratio doesn’t match the surface. Re-export at the surface’s native ratio.