TikTok ad 500 MB cap and 516 kbps floor: file size by clip length
TikTok's ad page caps files at 500 MB and sets a 516 kbps minimum bitrate. For 15 to 600 seconds that is roughly 1 to 39 MB at the floor.

TikTok's ad specification page says non-Spark video ads must be 500 MB or less and have a bitrate of at least 516 kbps. The two limits bracket your file: at the bitrate floor a 60-second ad is about 3.9 MB, and to hit 500 MB in 60 seconds you would need about 67 Mbps. In practice the cap does not bind for a normal phone ad. The floor is the one to watch.
The arithmetic
File size is bitrate times duration divided by eight. The table uses decimal megabytes and the page's two numbers. It is a calculation, not a measurement of any Sume output.
| Duration | Size at 516 kbps | Average bitrate that hits 500 MB |
|---|---|---|
| 15 s | about 0.97 MB | about 267 Mbps |
| 30 s | about 1.9 MB | about 133 Mbps |
| 60 s | about 3.9 MB | about 67 Mbps |
| 180 s | about 11.6 MB | about 22 Mbps |
| 600 s | about 38.7 MB | about 6.7 Mbps |
What you control on Sume
Not the bitrate. The Timeline and video filter docs say the server compiles ffmpeg, and keys such as codec and crf are rejected with a 400. So you cannot tune an encode to land above 516 kbps. What you can do is measure the finished file and stop if it is under the floor. A very flat, dark or static clip compresses to a low bitrate, which is the case most likely to trip the check.
The same goes for the cap: ten-minute files exist (the page allows up to 10 minutes), but a 500 MB output would need an average above 6.7 Mbps at that length, so the cap and the length limit are two separate ways to fail.
A cheap pre-flight
Before you upload, read the size and bit rate from the file with ffprobe, and reject anything under 516 kbps or over 500 MB. A short script for this is in the pre-flight checker post in this series.
Reading the numbers in practice
The practical result is that the 500 MB cap is a limit for long, high-bitrate masters, not for a typical ad. A 30-second clip would have to average about 133 Mbps to reach it, which no phone-ad render comes near. If a file is close to the cap, something is wrong with the encode, such as an uncompressed intermediate that you uploaded by mistake.
The floor deserves more attention. A bitrate of 516 kbps is low, but a clip with little motion and a plain background can fall near it. An AI clip of a still product on a flat backdrop is exactly that case. If the check fails, make the clip busier or render a different shot rather than hunting for an encoder setting you cannot reach.
Finally, keep two numbers apart. The page's figures describe what TikTok accepts for these ads, and the table describes arithmetic. Neither tells you what a Sume render will weigh; only the file does. Measure three representative renders before you sign off on a batch.
Unknowns
The page does not say whether the bitrate floor applies to video only or video plus audio, nor whether MB means 1,000,000 or 1,048,576 bytes. Leave margin.
Sources
Related posts
More in Use cases
- TikTok ad minimum 540x960: Sume's 1080x1920 default clears it
TikTok's ad page sets minimums of 540x960 (9:16), 960x540 (16:9) and 640x640 (1:1). Timeline renders 1080x1920 by default, and width and height are settable.
- TikTok ad safe zones vs burned-in captions: anchor_ratio
TikTok says its safe zone varies with ratio, caption length and format. Sume caption design has an anchor_ratio to move a burned-in line.
- TikTok 6-slide 9:16 carousel: Qwen Image n=4 plus n=2 is 15 cents
A six-slide 9:16 slideshow takes two Sume image calls because n caps at 4. Qwen Image bills $0.025 per slide, so the set is $0.15. Code and cost table.
- TikTok Spark Ads vs standard ad video specs: what to render
TikTok lists .mp4 or .mov and no duration limit for Spark Ads, but 9:16 minimums, 500 MB and up to 10 minutes for non-Spark ads. Sume returns MP4.
Written by Sume