Aspect-ratio problems
Black bars on a video: crop it, pad it or export 9:16
Short answer
Black bars are arithmetic, not a bug: the player has a fixed frame and your file does not fill it. A 1920 × 1080 file scaled to a 1080 px wide 9:16 frame is only 608 px tall, so 656 px of empty space sits above and below. Fix it in one of two ways: crop, which fills the frame and discards the sides, or pad, which keeps everything and adds an edge. YouTube explicitly advises against padding or black bars baked into your file, because padding interferes with the player resizing itself.
Key takeaways
- Bars are either in your export or added by the player; check which before re-exporting.
- A 1920 × 1080 file in a 1080 × 1920 frame is a 1080 × 608 picture with 656 px bars.
- Crop fills the frame and loses content; pad keeps content and adds an edge.
- YouTube says to avoid adding padding or black bars directly, since it resizes the player dynamically.
- A 4:5 file in a 9:16 frame gets 285 px bars top and bottom, or loses 228 px per side if scaled to fill.
Where the bars come from, in pixels
A player that shows a 16:9 file in a 9:16 frame can either letterbox it (bars) or zoom it (crop). Both are the same arithmetic. A 1920 × 1080 file scaled to 1080 px wide is 1080 ÷ 16 × 9 = 608 px tall, so a 1080 × 1920 frame leaves 1920 − 608 = 1312 px of empty space, which is 656 px above and below when centered.
The same numbers decide whether padding or cropping is the right answer for you.
| Source | Placed in 1080 × 1920 | Padding needed | Pixels lost if you crop |
|---|---|---|---|
| 1920 × 1080 (16:9) | 1080 × 608 picture | 656 px top and bottom | 608 of 1920 px of width |
| 1080 × 1080 (1:1) | 1080 × 1080 picture | 420 px top and bottom | 420 px of each side |
| 1080 × 1350 (4:5) | 1080 × 1350 picture | 285 px top and bottom | 228 px of each side |
| 1080 × 1920 (9:16) | 1080 × 1920 picture | None | None |
Computed: each figure is the source scaled to 1080 px wide, then the difference from 1920 px of height split evenly. A 4:5 file is the mildest case: it matches the frame width but not its height, so it gets 285 px bars, and if it is scaled to fill the height it loses 228 px per side.
Find your case
| What you see | What it usually means | Do this |
|---|---|---|
| Bars in the exported file itself | Your editor padded or the source was letterboxed | Export without padding (step 2) |
| Bars only on the platform | The player fits a different shape into its frame | Export the shape the player uses (step 1) |
| Bars on some devices only | Device aspect differs from the file | Export 1080 × 1920 (step 4) |
| Bars are white or dark gray, not black | The player padded the video itself | Nothing to fix in your file (step 1) |
| Bars and a soft picture | A small file was scaled up to fill | Export at the native size (step 4) |
| Bars you cannot remove without losing the subject | The subject is at the frame edge | Reposition, then pad (step 3) |
Fix it step by step
Decide where the bars are coming from
Open the exported file. If the bars are already in it, they came from your editor or from the source. If the file is clean and the bars appear only on the platform, the player added them. YouTube documents this: for 9:16 vertical videos on computer browsers it may add more padding for optimal viewing, and that padding is white by default and dark gray when Dark theme is on.
Export without padding
A project set to a different aspect than the export adds letterbox or pillarbox bars. Set the sequence to the shape you are posting at, usually 1080 × 1920, and export with the canvas filled. YouTube says to avoid adding padding or black bars directly because padding interferes with its ability to change the player dynamically to the video size and the viewer's device.
Pad deliberately when content must survive
ffmpeg -i in.mp4 -vf "scale=1080:-2,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black" -c:a copy out.mp4. FFmpeg documents that pad adds space, places the input at the x and y offsets, and centres the input when x or y is negative; here the expressions center it explicitly.Fill the frame instead, when you can afford the crop
ffmpeg -i in.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" -c:a copy out.mp4takes a 9:16 slice out of the middle of the frame and scales it up. On a 1920 × 1080 source that slice is 608 px wide, so you keep 608 of 1920 px, about a third of the picture.Check the display aspect ratio before blaming the player
A file can be padded because the pixel size is right but the sample aspect ratio is wrong, which stretches the picture and leaves gaps. FFmpeg documents that DAR = width ÷ height × SAR, and setsar=1 fixes a file whose SAR does not match its pixel shape.
Know when the platform will letterbox anyway
Instagram accepts a Reel at an aspect ratio between 1.91:1 and 9:16, so a 4:5 or 1:1 file is legal and will be fitted rather than cropped. If your file is inside the accepted range, bars on the platform are expected, not a defect.
Pad or crop: what each choice costs
| Pad to 1080 × 1920 | Keeps 100% of the picture · adds bars by design |
|---|---|
| Crop 16:9 to 9:16 | Keeps 608 of 1920 px of width · about 32% of the frame |
| 4:5 in a 9:16 frame | 285 px bars top and bottom · nothing cropped |
| 9:16 native | Nothing to do · Instagram accepts 1.91:1 to 9:16 |
| Player padding color | White by default, dark gray in Dark theme on YouTube |
Pad or crop, and what each command does
Padding keeps every pixel and adds an edge. Cropping fills the frame and throws pixels away. FFmpeg documents both filters. pad adds space around the input at the size you ask for and centres the input if x or y is negative. crop takes out a rectangle of the size you ask for, evaluated for each frame, so expressions such as in_h and 9/16 work directly.
| Goal | Filter | Notes from the FFmpeg documentation |
|---|---|---|
| Fit inside 9:16 with bars | scale then pad | pad takes width, height, x, y and a color; negative x or y centres the input |
| Fill 9:16 and lose the sides | crop | crop=w:h:x:y, with x and y evaluated per frame |
| Square crop of a vertical clip | crop=in_h:in_h | documented example: crop the central square with crop=out_w=in_h |
| Fix a squashed file | setsar=1 | DAR = width ÷ height × SAR, so a wrong SAR is what makes a video look stretched |
Free tools:Crop a video9:16 video reference
Frequently asked questions
Why does my video have black bars?
The player has a fixed frame and your file does not fill it. A 1920 × 1080 file shown in a 1080 × 1920 frame leaves 656 px above and below once it is scaled to 1080 px wide.
Should I crop or pad?
Crop when the edges hold nothing important and you want a full-screen look. Pad when the whole picture must stay visible and you accept bars.
Should I add black bars to my video before uploading?
YouTube explicitly advises against it: padding interferes with the player's ability to resize itself to your video and the viewer's device. Pad only when the format requires it, such as a 16:9 upload to a 16:9 placement.
Why are the bars white instead of black?
Because the player added them, not your file. YouTube documents that for 9:16 vertical video on computer browsers it may add more padding, which is white by default and dark gray when Dark theme is on.
Sources
- YouTube Help: Video resolution & aspect ratios (official, checked 2026-10-07)
- Instagram Help: Reel size & aspect ratios (official, checked 2026-10-07)
- FFmpeg Documentation: Video filters (crop, pad, scale, setsar, subtitles) (official, checked 2026-10-07)
- LinkedIn Help: Video sharing troubleshooting (formats, limits, safe zones) (official, checked 2026-10-07)
Reviewed 2026-10-07. Steps not attributed to a source are general video practice or computed above.