Vertical video
without cropping.
Cropping a widescreen clip to vertical throws away 70% of the frame. Blurred-background fill keeps the whole shot and still fills a phone screen. Here is the exact format, and the ffmpeg recipe that produces it.
Cropping to vertical destroys the shot
A Twitch clip is 16:9. TikTok, Reels, and Shorts are 9:16. If you crop to fit, you throw away roughly 70% of the frame width — which on a stream reliably means cutting off the gameplay, the facecam, or the streamer's head.
Blurred-background fill solves it differently: keep the entire original frame at full width, centre it vertically, and fill the empty space above and below with a scaled-up, blurred copy of the same footage. Nothing is lost, and the video still fills a phone screen edge to edge.
Portrait fit, blurred fill
| Parameter | Value | Why |
|---|---|---|
| Output size | 1080 × 1920 | Native vertical resolution for TikTok, Reels, Shorts |
| Foreground scale | scale=1080:-2 | Full width, auto height — never hardcode the height |
| Background blur | boxblur=40:4 | Radius 40, 4 passes — approximates gaussian, far cheaper |
| Pixel format | yuv420p | Mandatory — social platforms reject yuv444p |
| Video codec | H.264 (libx264) | Universal compatibility |
| Audio | Copied unchanged | No quality loss, no re-encode time |
The -2 matters more than it looks. It tells ffmpeg to compute the height from the width while preserving aspect ratio, rounded to an even number — H.264 requires even dimensions. Hardcode a height instead and any clip that isn't exactly 16:9 comes out subtly stretched.
The exact ffmpeg command
ffmpeg -y -i input.mp4 -filter_complex "\
[0:v]scale=1080:1920:force_original_aspect_ratio=increase,\
crop=1080:1920,boxblur=40:4,setsar=1[bg];\
[0:v]scale=1080:-2[fg];\
[bg][fg]overlay=(W-w)/2:(H-h)/2:format=auto,format=yuv420p[v]" \
-map "[v]" -map 0:a? -c:v libx264 -preset veryfast -crf 20 \
-c:a copy -movflags +faststart output.mp4
What each part does
- scale + force_original_aspect_ratio=increase — blows the source up until it covers the full 1080×1920 canvas, overflowing on one axis.
- crop=1080:1920 — trims that overflow back to exact canvas size, giving a full-bleed background layer.
- boxblur=40:4 — blurs it. Tune the radius (40), leave the passes (4) alone.
- setsar=1 — forces square pixels. Without it, mismatched sample aspect ratios between the two layers make the overlay distort or fail outright.
- scale=1080:-2 — the sharp foreground layer at full width, height auto-computed.
- overlay=(W-w)/2:(H-h)/2 — centres the foreground over the background on both axes.
- format=yuv420p — the single most common reason an export won't upload. Do not skip it.
- -map 0:a? — includes audio only if it exists, so a silent clip doesn't abort the job.
- -movflags +faststart — moves the index to the front of the file so it previews before fully downloading.
Getting the look right
Radius 30–50
Below 30 the background is legible and fights the foreground for attention. Above 50 it turns into flat mush and you lose the colour bleed that makes it feel cohesive.
Quality 18–23
CRF 20 is visually near-lossless for this. Lower means bigger files; above 23 you'll see blocking in the blurred area on dark scenes.
veryfast
The blurred layer hides most encoding artefacts, so a slow preset buys almost nothing visually while costing multiples in render time.
Common questions
What is a blurred background video?
It's a vertical (9:16) video where the original widescreen clip sits centred and fully visible, and the empty space above and below is filled with a scaled-up, heavily blurred copy of the same footage. It fills a phone screen without cropping anything out.
Why not just crop the video to vertical?
Cropping 16:9 down to 9:16 throws away about 70% of the frame width. On a stream that usually means cutting off the gameplay, the facecam, or someone's head. Blurred fill keeps the entire original frame intact.
Does a blurred background hurt reach on TikTok?
No. Blurred-fill is one of the most common formats on TikTok, Reels, and Shorts because it's how most reposted widescreen content is presented. What does hurt reach is third-party watermarks — those get deprioritised.
What resolution should the output be?
1080 × 1920. That's the native vertical resolution for TikTok, Instagram Reels, and YouTube Shorts. Anything larger is downscaled on upload; anything smaller looks soft.
Can I do this in ffmpeg myself?
Yes — the exact filter graph is on this page. The key details are scaling the foreground with an auto height, blurring a scaled-up copy for the background, and forcing yuv420p output so social platforms accept the file.
Why does my exported video fail to upload?
Almost always the pixel format. If ffmpeg outputs yuv444p instead of yuv420p, Safari, iOS, and most social uploaders refuse to decode it. Add format=yuv420p to the end of your filter chain.