video-adsaspect-ratio

One product video, four cuts: Amazon listing, TikTok, Reels

·Javid Jamae·10 min read
One product video, four cuts: Amazon listing, TikTok, Reels

Prime Big Deal Days starts Tuesday, October 6 at 12:01 a.m. PDT and runs 48 hours, per Amazon's own announcement. That gives you seven days to get creative live. You have one good master clip per product and four places it has to land, and most sellers solve that by opening an editor four times per SKU.

Quick answer: A product video for Amazon listing pages ships at 1920x1080 (16:9, H.264, constant frame rate, under 500 MB), and the same master reframes to 1080x1920 for TikTok and Reels, 1080x1080 for the square feed, and 1080x1350 for Instagram and Facebook feed. Doing it by hand means four FFmpeg passes per SKU, each a crop/scale/pad chain: pad when the product's edges carry the sell, crop when the subject is centered with margin. To skip the per-SKU babysitting, send the master to FFmpeg Micro's Listing Video Kit blueprint and get all four MP4s back from one upload.

Conventional wisdom says multi-format delivery is an editing problem, so you hand it to whoever owns the timeline. Most agency workflows produce exactly that: a duplicate sequence per ratio, because a Premiere sequence holds exactly one aspect ratio. But the work isn't editing. It's geometry and encoding, and both are deterministic. Once you write down the rule for where the frame gets cut, a twenty-product catalog is one script, not eighty export sessions.

The four files one master clip has to become

Each destination wants a different frame shape and a different pixel target, and three of the four are hard rejections rather than soft preferences. Amazon's detail-page video guidance prefers 16:9 landscape, requires at least 1280x720 with 1920x1080 recommended, and caps the file at 500 MB, according to The Sparkhouse's requirements guide. TikTok publishes best at 1080x1920, and anything that isn't 9:16 gets zoomed or cropped to fill the screen, which is how product detail and end-card CTAs disappear.

DestinationRatioPixelsNote
Amazon listing / Sponsored Brands16:91920x1080Crop to fill, no bars. Under 500 MB
TikTok, Instagram Reels9:161080x1920Keep the top 108 px and bottom 320 px clear of text
Feed square1:11080x1080The safe default for mixed placements
Instagram and Facebook feed4:51080x1350Tallest format feed allows

Amazon lets you attach up to six videos per listing, and uploading is no longer limited to Brand Registry sellers, so the 16:9 file is the one asset with real shelf space behind it. The 4:5 has its own trap: Meta's safe-zone guidance asks you to keep roughly the top 14% and bottom 20% of a 1080x1350 asset clear of text and logos, where the headline, CTA and engagement chrome render. On a 1350-pixel-tall frame that's 189 px at the top and 270 px at the bottom. If your master has a burned-in price badge low in frame, it lands under the comment button.

Crop or pad: the rule that decides every output

The decision rule is about where the sell lives in the frame, not about which output looks nicer in a thumbnail. Pad when the product's edges carry the sell, meaning the silhouette, the packaging shape, or a size comparison that breaks the moment you cut into it. Crop when the subject is centered and the frame has margin on both sides, which covers most tripod product footage and almost all UGC.

Amazon is the exception that overrides the rule. Letterboxed and pillarboxed uploads read as padded filler in the listing player, so the 16:9 cut always crops to fill. That's why the Listing Video Kit crops the Amazon variant rather than adding bars, even when the master is vertical.

There's a third option worth knowing for the reverse case. When a horizontal master has to become 9:16 and cropping would slice the product in half, you fill the empty top and bottom with a blurred, scaled-up copy of the same frame. Nothing gets cut and the frame stays full. That chain needs -filter_complex, which the FFmpeg Micro API doesn't accept, so it's one of the jobs where the blueprint earns its keep: horizontal masters get the blurred fill on vertical formats automatically.

The exact FFmpeg command for each ratio

Every command below reads one master and writes one variant, with the encode settings Amazon requires applied to all four so the files stay interchangeable. Start with the listing asset, since it's the one under review.

ffmpeg -i master.mp4 \
  -vf "scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080" \
  -r 30 -fps_mode cfr -c:v libx264 -crf 20 -pix_fmt yuv420p \
  -c:a aac -b:a 192k -movflags +faststart amazon-16x9.mp4

The -r 30 -fps_mode cfr pair matters. Amazon accepts only constant frame rates in the 23.976 to 30 fps band, and variable frame rate causes playback issues and rejection. Phone footage is almost always VFR. If you still have -vsync cfr in your scripts, that flag is on the deprecation list covered in FFmpeg 9 breaking changes.

The three social variants are single filter chains on the same input:

# 9:16 for TikTok and Reels, center crop
-vf "crop=trunc(ih*9/16/2)*2:ih,scale=1080:1920"

# 1:1 square feed, center crop
-vf "crop=ih:ih,scale=1080:1080"

# 4:5 feed, padded so the full product stays in frame
-vf "scale=1080:-2,pad=1080:1350:0:(oh-ih)/2:color=white"

Filter order changes the result. crop then scale cuts from original pixels and then resizes; scale then crop resizes first and cuts from the smaller frame. For center-of-frame product shots, crop first.

The same job as one API call

FFmpeg Micro takes the same filter string as a job option, which means the command you tested locally transfers without rewriting. Submit to POST /v1/transcodes with a bearer token:

curl -X POST https://api.ffmpeg-micro.com/v1/transcodes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": [{"url": "https://cdn.example.com/sku-4417-master.mp4"}],
    "outputFormat": "mp4",
    "options": [
      {"option": "-vf", "argument": "crop=trunc(ih*9/16/2)*2:ih,scale=1080:1920"},
      {"option": "-c:v", "argument": "libx264"},
      {"option": "-crf", "argument": "20"}
    ]
  }'

The response comes back immediately with a job id and "status": "pending", and you poll GET /v1/transcodes/:id or wait for the webhook. One job per ratio, four jobs per SKU, all running in parallel on someone else's CPU. The same pattern applies to the Meta side of the set, which is covered in more depth in all four ratios from one master file.

Run a 20-SKU catalog in one pass

Batching is where the manual approach breaks. Put your masters in a CSV of sku,url pairs and wrap the four renders in a function:

render() {
  ffmpeg -y -i "$1" -vf "$3" -r 30 -fps_mode cfr -c:v libx264 -crf 20 \
    -pix_fmt yuv420p -c:a aac -b:a 192k -movflags +faststart "$2"
}

while IFS=, read -r sku master; do
  render "$master" "out/${sku}-16x9.mp4" "scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080"
  render "$master" "out/${sku}-9x16.mp4" "crop=trunc(ih*9/16/2)*2:ih,scale=1080:1920"
  render "$master" "out/${sku}-1x1.mp4"  "crop=ih:ih,scale=1080:1080"
  render "$master" "out/${sku}-4x5.mp4"  "scale=1080:-2,pad=1080:1350:0:(oh-ih)/2:color=white"
done < skus.csv

Twenty products is 80 renders. A 30-second 1080p master re-encodes in roughly 8 to 15 seconds per variant on an M-series laptop, so the serial run finishes in about 20 minutes if nothing crashes halfway through. Run it against the API instead and the renders go out concurrently, which matters more for a 60-SKU catalog than a 20-SKU one. In n8n, Make, or Zapier the same shape is a loop node over the SKU list with an HTTP request per ratio and a webhook step to collect the finished URLs.

If you'd rather not maintain the filter strings at all, the Listing Video Kit blueprint is this exact four-output set as an upload: drop in one master, get back 9:16, 1:1, 4:5 and a cropped-to-fill 16:9, all H.264/AAC at constant 30 fps with faststart, VFR normalized on the way through. Amazon's cut comes back capped at 45 seconds to match Sponsored Brands specs. There's a free tier, so you can test one SKU before committing the catalog.

What reframing can't fix

Reframing and packaging is all this is. The pipeline changes the frame shape and the encode. It does not re-cut the clip, change its pacing, move the hook earlier, swap the music, or track a moving subject to keep it centered. A 40-second master that drags for the first eight seconds will drag identically in all four outputs.

That boundary matters for two decisions. If the vertical cut needs a different edit, not a different frame, you need a timeline or a template-driven render service with per-placement layouts, and no amount of cropping substitutes for it. And if your product moves around the frame, a fixed center crop will lose it; the honest options are a blurred fill, a padded frame, or a re-shoot with the product centered. More on why automatic subject tracking isn't a thing FFmpeg does in FFmpeg can't auto reframe video to vertical.

Common pitfalls

Most failures in a four-ratio batch come from three or four repeat offenders, and all of them surface on the first SKU if you test before looping.

  • crop=ih*9/16:ih on a 1080-tall source produces a 607-pixel width, and libx264 dies with width not divisible by 2 (607x1080). H.264 and H.265 encoders require even dimensions, which is why the command above wraps the math in trunc(.../2)*2 and why you use -2 instead of -1 in scale filters.
  • Reusing the TikTok cut as the Amazon asset gets the listing rejected. Amazon bounces third-party branding, website URLs, contact info, social handles, and unverifiable superlative claims, and a social end card usually carries at least one of those.
  • Padding with color=white looks clean against a white product-photography background and terrible against dark packaging. Set it to the dominant background color per SKU, or use the blurred fill instead.
  • Upscaling a 720p master to 1080x1920 passes the encode and looks soft in the feed. Check master resolution before the loop runs, not after 80 files exist.
  • Text or badges burned into the bottom of the master land under Meta's engagement chrome in the 4:5 cut. Keep the lower 270 px of a 1080x1350 clear.

FAQ

Will Amazon reject a product video with black bars on the sides?

Amazon's published requirements cover dimensions, file size, codec, frame rate and content rules, not letterboxing, so a padded file usually passes the technical check. It's still the wrong call for the listing player, where bars eat the frame the shopper came to see. Crop the 16:9 cut to fill and save padding for the social ratios.

What size should the TikTok and Reels version of a product video be?

The TikTok and Reels version should be 1080x1920, H.264 video with AAC audio, at a constant frame rate. Uploads that aren't 9:16 get zoomed or cropped by TikTok to fill the screen, which crops product detail you chose to keep. The spec details and the posting-API quirks are in TikTok video specs that survive the upload.

Can one file work for both the Amazon listing and Instagram feed?

One file can't serve both well. Instagram and Facebook feed video is recommended at 1080x1350 in 4:5, and Amazon's detail-page player expects 16:9, so a single asset is either padded on one platform or cropped on the other. Render both from the same master instead of picking a compromise ratio.

How long does a four-variant pass take for 20 products?

A four-variant pass over 20 products is 80 renders, which runs in roughly 20 minutes serially on a laptop for 30-second 1080p masters, or a few minutes through an API that processes the jobs concurrently. Either way it's unattended, so the run can happen overnight.

You have seven days before the October 6 start, and the geometry part of this is solved. Sign up free, point one master at the API or the Listing Video Kit, and check the four outputs against your worst SKU before you queue the rest of the catalog.

About Javid Jamae

Founder & CEO at FFmpeg Micro

Javid is a software engineer, author, and entrepreneur with over 25 years of professional software development experience across enterprise, startup, and consulting environments. He founded FFmpeg Micro to make video processing accessible to developers through a simple, automation-first REST API.

Software EngineeringVideo ProcessingFFmpegCloud ArchitectureAPI DesignAutomation

Skip the command line

The Listing Video Kit blueprint runs the same job for you: upload, done.

Run it (free)