Every platform wants a different video size
You have one video. TikTok wants 1080x1920. Instagram feed wants 1080x1080. YouTube wants 1920x1080. Twitter wants 1280x720. LinkedIn wants 1920x1080 but under 200MB.
If you need to n8n resize video for multiple platforms, automating it takes about 15 minutes of setup. (New to using FFmpeg with n8n Cloud? Start with the n8n FFmpeg cloud fix for the base setup.) After that, it runs forever. Drop a video in, get five platform-ready versions out. This guide covers the FFmpeg commands, the n8n workflow nodes, and common mistakes that waste encoding time.
Use the RenderIO n8n node
RenderIO has a partner-verified community node on the n8n marketplace. Install from Settings → Community Nodes → search "renderio". It wraps the API into a visual interface — no HTTP Request configuration needed.
For resizing workflows, you can use presets for common platform dimensions or pass custom FFmpeg scale commands. The examples below use HTTP Request nodes for full control, but the same commands work directly with the native node.
The platform dimension cheat sheet
| Platform | Dimensions | Aspect Ratio | Max Size |
| TikTok | 1080x1920 | 9:16 | 287.6MB |
| Instagram Reels | 1080x1920 | 9:16 | 250MB |
| Instagram Feed | 1080x1080 | 1:1 | 250MB |
| Instagram Story | 1080x1920 | 9:16 | 250MB |
| YouTube | 1920x1080 | 16:9 | 256GB |
| YouTube Shorts | 1080x1920 | 9:16 | - |
| Twitter/X | 1280x720 | 16:9 | 512MB |
| 1920x1080 | 16:9 | 200MB | |
| Facebook Feed | 1280x720 | 16:9 | 10GB |
| Facebook Reels | 1080x1920 | 9:16 | 1GB |
FFmpeg resize commands for each platform
TikTok / Instagram Reels / YouTube Shorts (1080x1920)
This scales the video to fit within 1080x1920 while maintaining aspect ratio. Black bars fill any remaining space. If your source is 16:9, the bars appear top and bottom (pillarboxing).
Instagram Feed (1080x1080)
YouTube / LinkedIn (1920x1080)
Twitter (1280x720)
Crop instead of pad (fill the frame)
If you'd rather crop to fill the frame instead of adding black bars:
force_original_aspect_ratio=increase scales up to fill, then crop removes the overflow.
n8n workflow: Resize for one platform
Step 1: Trigger
Use any trigger: Webhook, Schedule, Google Drive file added, Airtable record created, etc.
The trigger should provide a video URL in its output. Example webhook body:
Step 2: Platform config (Switch node)
Add a Switch node that routes based on {{ $json.platform }}:
Case "tiktok": Set node with:
dimensions:1080:1920outputName:tiktok.mp4
Case "instagram_feed": Set node with:
dimensions:1080:1080outputName:instagram.mp4
Case "youtube": Set node with:
dimensions:1920:1080outputName:youtube.mp4
Step 3: Submit resize (HTTP Request)
Step 4: Poll and use result
Standard polling loop (Wait → Check Status → IF → result).
n8n workflow: Resize for all platforms at once
One video in, five platform-ready versions out. Here's the full workflow.
Step 1: Trigger
Webhook or any trigger with a video URL.
Step 2: Define all platforms (Code node)
This outputs 5 items, one per platform.
Step 3: Split in Batches
Process each platform. The Split in Batches node sends items one at a time (or in small batches) through the next nodes.
Step 4: Submit resize for each platform
HTTP Request node with:
Step 5: Poll each and collect results
After the polling loop completes for each platform version, collect all output URLs. Send them in a single Slack message, store in a database, or trigger uploads to each platform.
Compression for file size limits
Some platforms have strict size limits. Add compression after resizing:
LinkedIn (max 200MB) - Use CRF 28 with slower preset:
The higher CRF (28 vs 23) reduces file size by roughly 40-50%.
When you don't need to re-encode
Resizing always requires re-encoding. The encoder has to recalculate every frame at the new resolution. There's no shortcut.
But if you only need to change the container format (say, MKV to MP4) while keeping the same dimensions, you can copy the streams directly:
This runs in seconds because it doesn't touch the actual video data — just repackages it. Use this for format changes, not for resizing. If you need to change dimensions, you're re-encoding whether you like it or not. For more on the difference, the n8n video conversion guide explains when copying streams works and when it doesn't.
Common mistakes when resizing video in n8n
Forgetting force_original_aspect_ratio
Without this flag, FFmpeg stretches the video to fill the target dimensions. A 16:9 video resized to 9:16 without it becomes a squished mess. Always use force_original_aspect_ratio=decrease with pad (black bars) or force_original_aspect_ratio=increase with crop (fill frame).
Wrong padding color
The pad filter defaults to black. For some brands, that's fine. If you want white or a brand color:
Replace white with a hex color like 0x1a1a2e for custom backgrounds.
Not handling odd dimensions
H.264 requires even width and height values. If your source is an odd dimension and you're scaling proportionally, the calculation might produce an odd number. Use -2 instead of -1 in scale filters:
The -2 ensures the auto-calculated dimension is divisible by 2.
Submitting too many concurrent requests
n8n's Split in Batches node can fire all platforms simultaneously. If you're on the Starter plan (500 commands/month), this is fine. But watch your rate limits. The n8n video processing guide covers error handling and retry logic for when the API returns 429.
Ignoring audio bitrate
Resizing changes video, not audio. But if your output file is too big for a platform limit, you're re-encoding audio too. Dropping from 192k to 96k AAC cuts audio size in half and is barely noticeable on mobile speakers.
Adding compression to your resize workflow
Resizing alone doesn't guarantee the file fits under platform limits. LinkedIn's 200MB cap, Twitter's 512MB cap. Large source files can still exceed these after resizing.
Add compression as a second step in your n8n workflow, or combine it with the resize command. For the full breakdown of CRF values and presets, see compress video with FFmpeg. The short version: add -crf 28 -preset slow to your resize command for significant size reduction with minimal quality loss.
For batch resizing across dozens of videos, the n8n batch video processing guide covers queue management and parallel execution.
Quick reference: resize commands by platform
If you just want copy-paste commands for your n8n HTTP Request nodes:
| Platform | FFmpeg -vf filter | Notes |
| TikTok/Reels | scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2 | 9:16, 287MB max |
| Instagram Feed | scale=1080:1080:force_original_aspect_ratio=decrease,pad=1080:1080:(ow-iw)/2:(oh-ih)/2 | 1:1, 250MB max |
| YouTube | scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2 | 16:9 |
| Twitter/X | scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2 | 16:9, 512MB max |
scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2 | 16:9, 200MB max |
All commands work directly in the RenderIO API with {{in_video}} and {{out_video}} placeholders. Check the FFmpeg cheat sheet for the full list of scaling and cropping filters.
Get started
The Starter plan at $9/mo includes 500 commands, enough to resize every video for every platform. For the complete n8n setup from triggers to webhooks, the n8n video processing guide walks through the full workflow.
FAQ
Can I resize video in n8n without re-encoding?
No. Changing video dimensions requires re-encoding — the encoder recalculates every frame at the new size. If you only need to change the container format (MKV to MP4 at the same resolution), you can use -c copy which runs instantly. But actual resizing always means re-encoding.
What's the best output format for social media resizing?
H.264 in an MP4 container. Every platform accepts it, every device plays it, and it compresses well. Use -c:v libx264 -crf 23 -c:a aac. Don't bother with H.265 or AV1 for social media. The platforms re-encode everything anyway, and H.264 gives you the widest compatibility.
How do I resize video for TikTok without black bars?
Use crop instead of pad. The command scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920 scales the video up to fill the 9:16 frame, then crops the overflow. You lose some content at the edges, but there are no black bars.
Can n8n resize video and add a watermark in one step?
Yes. Chain the filters: -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,overlay=10:10" with a watermark image as a second input. The n8n watermark guide has the full workflow.
How long does resizing take via the API?
Depends on the source file, but most resizes finish in 10-30 seconds. A 2-minute 1080p source resized to five platform formats takes about 1-2 minutes total when submitted in parallel. Local FFmpeg on a modern machine is comparable for single files, but the API wins at scale because each command runs on its own container.