TikTok 500 MB cap and 10 minutes: the bitrate that fits is 6.67 Mbps
TikTok's non-Spark in-feed ad page allows 10 minutes and 500 MB or less. A full 10 minute ad fits only at 6.67 Mbps or below. The arithmetic and a Sume render.

A 10 minute non-Spark TikTok ad has to average no more than 6.67 Mbps for video and audio together to stay under the 500 MB file limit. TikTok's auction in-feed page lists a duration of up to 10 minutes and a file size of 500 MB or less, and it also lists a bitrate floor of 516 kbps. This post does the arithmetic with decimal megabytes, so 500 MB is 4,000 megabits.
What the TikTok page lists
These are the non-Spark in-feed ad values from TikTok's ad specifications page, read 2026-10-08. The page does not list a maximum bitrate, so the ceiling below is derived from the size and length limits.
| Item | Value on the page |
|---|---|
| Vertical (recommended) | 9:16, 540x960 px or larger |
| Horizontal | 16:9, 960x540 px or larger |
| Square | 1:1, 640x640 px or larger |
| File formats | .mp4, .mov, .mpeg, .3gp, .avi |
| Duration | Up to 10 minutes |
| File size | 500 MB or less |
| Bitrate | 516 kbps or more |
The ceiling at each length
The most the file can average is 4,000 megabits divided by the seconds. For 600 seconds that is 6.67 Mbps. Shorter ads have more room, so the cap only bites on long ads.
- At 8.384 Mbps (8 Mbps video plus 384 kbps audio) the file reaches 500 MB at 477 seconds, about 7 minutes 57 seconds.
- The 516 kbps floor means a 600 second ad is at least 600 x 0.516 = 309.6 megabits, which is 38.7 MB.
| Ad length | Seconds | Max average bitrate |
|---|---|---|
| 30 s | 30 | 133.3 Mbps |
| 2 min | 120 | 33.3 Mbps |
| 5 min | 300 | 13.3 Mbps |
| 8 min | 480 | 8.33 Mbps |
| 10 min | 600 | 6.67 Mbps |
Rendering a long ad on Sume
Timeline 1.0 accepts audio.duration_seconds from 1 to 1800, so a 600 second ad is within range and bills ceil(600 / 60) = 10 minutes at $0.10, which is $1.00. Timeline does not take a bitrate, because the docs reject codec and crf fields. Render the ad, then read the byte count of the returned file. If it is above 500 MB, shorten the ad or lower the output size with output.width and output.height, then render again.
Use POST /v1/timeline-1.0/plan first. It is unbilled and returns billable_minutes and estimated_cost_usd_micros. A related price check for short vertical ads is in this post.
If the file comes out over 500 MB
Measure first: file size in bytes divided by 1,000,000 gives decimal megabytes. If a render of a long ad is over the cap, you have three levers, and only some of them are exposed by Sume. You can shorten the ad with video trim, which costs $0.02 and cuts to a new MP4. You can lower the frame with output.width and output.height on a Timeline render, for example 720x1280 instead of the 1080x1920 default. You can also drop the frame rate with output.fps, which accepts 24, 25, 30 or 60.
Do not go below TikTok's own floor while doing this. The page lists 540x960 as the smallest vertical size and 516 kbps as the smallest bitrate, so a 720x1280 render still clears the size minimum. Because Sume does not take a bitrate, re-measure after each render instead of assuming the new size is small enough.
- Shorten with video trim ($0.02 a job).
- Lower output.width and output.height on Timeline, staying at or above 540x960.
- Lower output.fps to 24, 25 or 30 if the source rate allows it without judder.
Sources
Related posts
More in Developers
- TikTok 516 kbps minimum bitrate: a 30 second ad is at least 1.94 MB
TikTok's non-Spark spec lists bitrate of 516 kbps or more. The smallest file for 15, 30 and 60 seconds is shown with the math, plus how to check a Sume render.
- TikTok ad caption rules: no links, @ or hashtags, and a 4-line limit
TikTok's in-feed ad page says captions can't hold links, @ symbols or hashtags, and Spark captions max out at 4 lines. A Python lint to run before you submit.
- Timeline sizes for TikTok's three ad ratios: 540x960, 960x540, 640x640
TikTok's non-Spark minimums are 540x960 (9:16), 960x540 (16:9) and 640x640 (1:1). All three fit Timeline's even 256 to 2160 px output range at $0.10 a minute.
- Timeline audio concat or audio.parts: which join for narration takes?
Use audio.parts when the narration only feeds one render; use Timeline audio concat when you need a reusable file. Concat is $0.01 per job, up to 1,800 s.
Written by Sume