4:5 clip in Snapchat's 720x1280 frame: crop or pad 29.7%
A 1080x1350 clip in a 720x1280 Snap frame: cover loses 304 px of width, contain leaves 380 px of bars. Fit modes cover, contain, blur; $0.10 a minute.

Put a 4:5 clip (1080x1350) in Snapchat's 9:16 frame at 720x1280 and you choose between losing 29.7% of the width or leaving 29.7% of the height empty. Timeline 1.0's video[].fit field has both: cover (the default) crops, contain pads, and blur fills the pad with a blurred copy. A render costs $0.10 per output minute, rounded up.
Snapchat's ad-formats page (read 2026-10-09) lists the 9:16 aspect ratio and 720x1280 resolution for its video ad formats, with lengths of 3 to 180 seconds for single image or video, story and collection ads.
The arithmetic
Scale a 1080x1350 clip so it fits a 720x1280 frame. Contain scales by width: 720 / 1080 = 0.6667, so the picture is 720 x 900. That leaves 1280 - 900 = 380 px of height unused, which is 380 / 1280 = 29.7%. Cover scales by height: 1280 / 1350 = 0.9481, so the picture is 1024 x 1280 and 1024 - 720 = 304 px of width is cropped, which is 304 / 1024 = 29.7% of the scaled width. The two losses match because 4:5 is 0.8 and 9:16 is 0.5625, and 1 - 0.5625 / 0.8 = 0.297.
| fit | Picture size | What changes | Share |
|---|---|---|---|
| cover | 1024 x 1280, 304 px cropped | Edges of the picture are lost | 29.7% of width |
| contain | 720 x 900 | 380 px of empty frame | 29.7% of height |
| blur | 720 x 900 sharp | The empty 380 px holds a blurred copy | 29.7% of height |
| stretch | 720 x 1280 | Picture distorts | none lost, aspect wrong |
Which to pick
If the subject is centered and the edges are background, cover keeps the screen full and nothing looks like a mistake. If there is text near the sides of the 4:5 frame, cover can cut it, so check with a still. Contain with no fill shows a flat bar, which looks like an error on a phone; blur is the usual safer choice for product shots with captions in the middle.
Set output.width to 720 and output.height to 1280 in the render; both are even, in the 256 to 2160 range. Omit output.fps to match the source rate, or set it to 24, 25, 30 or 60.
Check before you pay
Plan first. POST /v1/timeline-1.0/plan runs the schema, URL checks and the compiler without creating a job or reserving credits, and returns duration_seconds, segment_count, billable_minutes and estimated_cost_usd_micros. It cannot predict warnings about short sources being padded or looped, so still pull a still from the finished render with video frames at a second you care about, such as the first frame, to see how the 4:5 picture sits.
One more rule affects 4:5 sources. Stills in video[] are static holds, and a motion value on a still is accepted but ignored with the warning motion_ignored. If your 4:5 asset is an image rather than a clip, the fit modes work the same way; only the movement is absent.
Cost
A 15-second ad is one output minute, so $0.10 for any of the first three modes. Because the plan call is free (POST /v1/timeline-1.0/plan), you can compare a cover and a blur plan before paying for either; the price is the same, only the picture differs.
Sources
Related posts
More in Media tools
- Upscale a 45-second clip: 30 s maximum, so two trims, $0.445
Sume Video Upscale takes at most 30 s at $0.009 a second. A 45-second clip needs two trims ($0.04) and two upscales ($0.405): $0.445, or $0.545 with a render.
- $5 of lip sync: 50 s on H3 Max 768p, 26 s on Fabric 720p
A $5.00 balance buys 50 audio seconds of H3 Max Lip Sync at 768p ($0.10), 80 at 480p, or 26 whole seconds of VEED Fabric at 720p ($0.1875) on Sume.
- A 600-character script to a talking still: $0.03 TTS plus $3.80 Fabric
600 characters of TTS cost $0.0285 on Sume; if the audio measures 38 s, VEED Fabric adds 38 x $0.10 = $3.80 at 480p or $7.125 at 720p. Total $3.83 or $7.15.
- 9-second Kling motion control clip: $1.42, or $1.64 finished
Kling 3.0 Motion Control on Sume bills $0.1575 per output second: 9 seconds is $1.4175. With Music 1.0 and a 1-minute render it is $1.6425.
Written by Sume