X video ad under 30 MB: how many seconds fit at 6,000 and 5,000 kbps
X says keep video ads under 30 MB. At its 6,000 kbps (1080p) and 5,000 kbps (720p) targets that is 40 and 48 seconds. Check yours with Sume video inspect.

At X's recommended bitrates, a video ad stays under the 30 MB size X recommends for about 40 seconds at 1080p (6,000 kbps) and about 48 seconds at 720p (5,000 kbps). The hard file cap is 1 GB, so the 30 MB figure is a performance recommendation, not a rejection rule. This page does the arithmetic and shows how to measure your own file before you upload it.
What X's page says
The numbers below come from X's own creative specs page, not from a third party. X recommends videos of 15 seconds or less, supports up to 2:20, and advises keeping files under 30 MB for optimal performance.
| Item | X spec |
|---|---|
| File types | MP4 or MOV |
| File size | 1 GB max; under 30 MB strongly recommended |
| Length | 15 seconds or less recommended; up to 2:20 supported |
| Bitrate, 1080p | 6,000 to 10,000k (6,000k recommended) |
| Bitrate, 720p | 5,000k to 8,000k (5,000k recommended) |
| Frame rate | 29.97 or 30 FPS; up to 60 FPS accepted |
The arithmetic
File size is bitrate times duration divided by eight. Treat 30 MB as 30,000,000 bytes, which is 240 megabits. If you read it as 30 MiB the answers rise by about 5 percent.
At 6,000 kbps: 240,000 kilobits divided by 6,000 is 40 seconds. At 5,000 kbps: 240,000 divided by 5,000 is 48 seconds. At the top of the 1080p range, 10,000 kbps, the same budget gives 24 seconds. A 15-second ad at 6,000 kbps is 90,000 kilobits, which is 11.25 MB, so X's recommended length sits well inside the recommended size.
Seconds that fit in 30 MB (240 megabits), computed 2026-10-09, as listed below.
- 5,000 kbps (720p target): seconds in 30 mb 48; size of a 15 s ad 9.375 MB
- 6,000 kbps (1080p target): seconds in 30 mb 40; size of a 15 s ad 11.25 MB
- 8,000 kbps (720p ceiling): seconds in 30 mb 30; size of a 15 s ad 15 MB
- 10,000 kbps (1080p ceiling): seconds in 30 mb 24; size of a 15 s ad 18.75 MB
Measure the real file with Sume
Sume's video inspect reads a clip already in your workspace and returns a probe with duration_seconds, width, height, fps, video_codec and size_bytes. Send frames: false to get the probe without stills. Divide size_bytes by duration_seconds, multiply by eight, and you have the average bitrate including audio.
Sume does not let you set bitrate. Its render and trim endpoints reject codec and crf style fields, so you cannot dial a bitrate down to fit 30 MB. What you control is length and frame size: a shorter cut with video trim, or a smaller output width and height on a timeline render. Trim is $0.02 per job and timeline is $0.10 per output minute rounded up, with a one-minute minimum (Sume catalog, read 2026-10-08).
def avg_kbps(size_bytes, seconds):
return size_bytes * 8 / seconds / 1000
def seconds_for(size_mb, kbps):
return size_mb * 1_000_000 * 8 / (kbps * 1000)
print(round(seconds_for(30, 6000), 1)) # 40.0
print(round(seconds_for(30, 5000), 1)) # 48.0
print(round(avg_kbps(11_250_000, 15))) # 6000What to do if you are over
If the probe shows more than 30 MB, shorten first. X recommends 15 seconds or less anyway, and X loops videos shorter than 60 seconds. Cut the range with video trim (the source file is not changed, and a new MP4 comes back), then probe the result again.
If the clip is already short and still large, the cause is usually frame size or frame rate from the source. Re-render at a smaller size or at 30 fps; Sume's timeline output.fps accepts 24, 25, 30 or 60. Expect the result to land near X's bitrate range, but confirm with the probe, because Sume documents no bitrate target.
Sources
Related posts
More in Use cases
- X video ads loop under 60 seconds: design the last frame of a 45 s ad
X loops video ads shorter than 60 seconds and plays longer ones once. Plan the first and last second differently for each, then check them with Sume.
- YouTube AI disclosure: player label or description, by clip type
YouTube shows a prominent label for photorealistic AI and description-only for unrealistic or animated content. Sort your Sume clips into the right bucket.
- YouTube AI label: player if photoreal, description if animated
YouTube shows the AI label in the player for photorealistic content and in the expanded description for animated content. Which Sume clips fall where.
- YouTube can add an AI label you cannot remove: C2PA 2.1 and Sume jobs
YouTube auto-labels files with Content Credentials 2.1+ and can add a label creators cannot remove. What to record per Sume job, and what the docs do not claim.
Written by Sume