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.

5 min readSume
All posts

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.

TikTok non-Spark auction in-feed ad specs (read 2026-10-08)
ItemValue on the page
Vertical (recommended)9:16, 540x960 px or larger
Horizontal16:9, 960x540 px or larger
Square1:1, 640x640 px or larger
File formats.mp4, .mov, .mpeg, .3gp, .avi
DurationUp to 10 minutes
File size500 MB or less
Bitrate516 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.
Highest average bitrate that stays within 500 MB (4,000 megabits), computed
Ad lengthSecondsMax average bitrate
30 s30133.3 Mbps
2 min12033.3 Mbps
5 min30013.3 Mbps
8 min4808.33 Mbps
10 min6006.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

All Developers posts

Written by Sume