Vimeo can hide black bars; Sume bakes the right frame into the file
Vimeo's September 2026 Page theme hides black bars on non-16:9 videos. To remove them from the MP4 itself, render the frame with Timeline fit and output size.

Vimeo's 10 September 2026 update added a Page theme tab for your logo, fonts and colors, and says you can also hide black bars on non-16:9 videos, per Vimeo's product updates, read 2026-10-01. That changes how the page shows the video. It does not change the file. If a clip is going anywhere other than a Vimeo page, render the frame you want into the MP4 with Timeline 1.0.
Why do black bars appear at all?
Bars appear when a clip's aspect ratio differs from the box that plays it. A 9:16 clip in a 16:9 player gets bars on the sides, and the reverse gets bars above and below. Hiding the bars in the page is one fix. Matching the file to the destination is the other, and it works on every platform, not only the one with a theme setting.
Which Timeline setting decides what fills the frame?
| `fit` | What the frame does |
|---|---|
cover (default) | Fills the frame and crops the overflow |
contain | Keeps the whole picture; leftover space is bars |
stretch | Fills the frame by distorting the picture |
blur | Keeps the whole picture over a blurred fill |
How do I render a 16:9 version of a vertical clip?
Set output.width and output.height (even integers from 256 to 2160) to the target, then pick fit for the slot. The default output is 1080x1920, so a landscape target needs an explicit size. A timeline needs an audio spine: detach the clip's own audio first with Audio detach, then pass that file as audio.url. For a silent clip, use audio.mode: "silence" with a duration instead.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: landscape-blur-001" \
-d '{
"audio": {
"url": "https://media.sume.com/artifacts/artf_demo/talk.wav",
"duration_seconds": 24
},
"output": { "width": 1920, "height": 1080 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/vertical.mp4",
"start": 0, "duration": 24, "fit": "blur" }
]
}'What does it cost and what are the limits?
Timeline renders are metered at the rate card's price, which reads $0.10 per output minute. Audio is capped at 1,800 seconds and video[] at 200 slots. The /plan route compiles the document without billing, so use it to check the document before a real render.
Sources
Related posts
More in Developers
- Vimeo pixel aspect ratio 1:1: setsar in a video filter
Vimeo recommends square pixels (1:1). Sume's video filter allowlist includes setsar, setdar and scale, so a filtergraph can set the sample aspect ratio.
- VS Code extension icon: 128x128 minimum, 256x256 for retina
VS Code wants an extension icon of at least 128x128, with 256x256 for retina displays. Generate 1024x1024 with GPT Image 2.5 on Sume and downscale to 256.
- Wan 3.0 at 30 fps, HappyHorse at 24: set Timeline output.fps
Alibaba lists Wan 3.0 at 30 fps and HappyHorse 1.1 at 24 fps. Joined in Sume's Timeline, a differing output.fps resamples sources and warns; omit it to match.
- Wan 3.0 smart duration and adaptive ratio vs Sume's explicit fields
QwenCloud lists smart duration and adaptive aspect ratio for Wan 3.0. On Sume you send an integer duration and an aspect_ratio the model supports.
Written by Sume