Amazon Sponsored Brands video: no letterboxing, lower right clear

Amazon's Sponsored Brands video spec says avoid letterboxing and keep text out of the lower right. Test both on a still pulled with Sume video frames.

5 min readSume
All posts

Amazon's Sponsored Brands video page says to avoid letterboxing or pillarboxing, and to keep text and other important information out of the lower right corner (read 2026-10-03). Both are checks you can run on a single still. Sume's video frames returns a frame at the source size, and a few lines of Pillow find black bars at the edges and measure how busy the lower right area is. Sume does not detect text, so the corner check ends with you looking at the picture.

Here are the rules the page sets, and a script that tests the two that a still can show.

What Amazon lists

The same page sets a length of 6 to 45 seconds (20 seconds or less highly recommended), 16:9 square-pixel video only, resolutions of 1280 x 720, 1920 x 1080 or 3840 x 2160, and a maximum file size of 500 MB in .MP4 or .MOV. Codec, profile, frame rate, bit rate and audio each have their own rows (read 2026-10-03). The page lists these two warnings as a key restriction, which makes them easy to miss when you only copy the numbers.

Sponsored Brands video rows, Amazon Ads, read 2026-10-03
RuleAmazon's wordingHow to test
Aspect ratio16:9 (square pixel) onlyProbe width and height
Letterboxing or pillarboxingAvoidLook for black bars in a still
Lower right cornerNo text or other important informationOpen a still and look
Length6 to 45 seconds, 20 or less recommendedProbe the duration

Find black bars in one still

Pillarboxing happens when a vertical video is placed inside a 16:9 frame, leaving dark columns on both sides; letterboxing leaves rows above and below. Both show up in a still as edge strips with almost no brightness. Video frames returns up to 24 stills per call at at timestamps, each inside the clip.

The script pulls a frame at 3 seconds, finds the image URL in the result, and measures the mean brightness of the outer 6 percent on each side. A value near zero on both sides suggests bars. The 6 percent and the threshold of 12 are my starting guesses, so adjust them for your footage, since dark scenes can trip the test. It also saves a crop of the lower right fifth to corner.png so you can look for text.

import os, time, requests
BASE = "https://api.sume.com"
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}

def run(path, body, key):
    r = requests.post(BASE + path, headers={**H, "Idempotency-Key": key}, json=body)
    r.raise_for_status()
    job = r.json()["request_id"]
    while True:
        s = requests.get(f"{BASE}/v1/jobs/{job}/status", headers=H).json()["status"]
        if s in ("completed", "failed", "canceled"):
            break
        time.sleep(3)
    return s, (requests.get(f"{BASE}/v1/jobs/{job}/result", headers=H).json() if s == "completed" else None)

import io, json, re
from PIL import Image
status, res = run("/v1/video-frames", {"video_url": "https://media.sume.com/artifacts/artf_demo/sb.mp4", "at": [3]}, "sb-still-001")
m = re.search(r"https://media\.sume\.com/[^\"\s]+", json.dumps(res) if res else "")
im = Image.open(io.BytesIO(requests.get(m.group(0)).content)).convert("L")
w, h = im.size; e = int(w * 0.06)
left = sum(im.crop((0, 0, e, h)).getdata()) / (e * h)
right = sum(im.crop((w - e, 0, w, h)).getdata()) / (e * h)
print("edge brightness", round(left, 1), round(right, 1), "bars?" if max(left, right) < 12 else "ok")
im.crop((int(w * 0.8), int(h * 0.8), w, h)).save("corner.png")

Why the lower right matters

Amazon's page gives the instruction without a reason, so do not invent one. A reasonable guess is that the player or the surrounding page places controls or badges there, but the page does not say, and the only safe move is to follow it. Keep the product, the price and any legal line toward the left and centre of the frame, and use the lower right for nothing that matters.

This also changes how you think about burned-in captions. Centred captions placed in the middle band are safe, but a caption that runs to the right edge on a long line can reach the corner. Keep lines short, and check the longest line in the clip, not the first one you see.

Run the check on more than one frame

A single still can mislead. A title card may be full-frame while the rest of the clip has bars, or the opposite. Ask for several timestamps in the same call, for example one near the start, one in the middle and one near the end, and run the same test on each. The endpoint allows up to 24 stills per call, so three is cheap.

Keep the results in your campaign notes along with the date you read Amazon's page. When you hand the clip to a teammate, the notes tell them which checks were run and which still need a human look.

If the clip has bars or a busy corner

A vertical source cannot simply be stretched to 16:9. You can crop it with video filter, whose crop op takes a rectangle as fractions of the source frame (x, y, width, height), and the result is a new MP4. Cropping a vertical clip to a 16:9 band throws away most of the picture, so often the better answer is a new composition for the horizontal format.

For the corner, move the text rather than the whole frame. If you burn captions with Sume, choose a placement away from the lower right, then pull another still and check again. Sume does not know where Amazon's player draws its controls, so the spec is your guide, and Amazon's review is the last word.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume