25-minute webinar to the 10-minute TikTok ad limit: one trim, $0.02
A 1,500 s webinar fits video-trim's 1,800 s source cap. Send duration 600 for a 10-minute cut at $0.02, then check the 500 MB cap and the 516 kbps floor.

A 25-minute webinar is 1,500 seconds, which is inside video trim's 1,800-second source limit. Send start and duration: 600 to get a 10-minute MP4, the longest length that TikTok's non-Spark ad page (read 2026-10-08) allows. It costs $0.02. Then check the other two limits on that page: no more than 500 MB, and a bitrate of at least 516 kbps.
The limits that apply
The trim output is capped at 900 seconds, so 600 is allowed, and a request for a range longer than 900 seconds returns video_trim_range_empty. A source longer than 1,800 seconds fails in the worker with source_duration_exceeded. Both are in the video trim docs (read 2026-10-08).
| Quantity | Value |
|---|---|
| Webinar length | 25 min = 1,500 s (source cap 1,800 s) |
| Cut length | 600 s (output cap 900 s; TikTok non-Spark cap 10 min) |
| Trim cost | $0.02 |
| Smallest file at 516 kbps | 516 x 600 / 8 = 38,700 kB = 38.7 MB |
| Highest average bitrate at 500 MB | 500 x 8 / 600 = 6.67 Mbps |
| Next-length trap | 601 s is over the TikTok limit; 900 s is the trim cap, not the ad cap |
Where to start the 10 minutes
Pick the window with a free look first. video_inspect takes up to 24 stills in a call, so you can sample the webinar at set times and choose the segment that holds the offer. A call returns 24 stills at most, so for a 1,500-second webinar use at[] with chosen times, for example 20 times spaced 75 seconds apart. Each inspect is billed by its compute, not at a flat rate, so keep the stills few.
- Start at 0 to keep the introduction:
start: 0, duration: 600. - Start at 480 for a late section: the window 480-1,080 is inside 1,500 s.
- The last possible start for a full 600 s window is 900 s (900 + 600 = 1,500).
Why not the whole 25 minutes
The non-Spark limit is 10 minutes, so the full 1,500 seconds cannot be uploaded as that ad type. The same page says Spark Ads take mp4 or mov with no duration restriction. That is a different ad type, with its own rules, and this post does not cover it. A single trim also cannot output more than 900 seconds, so even a 15-minute cut has to be one trim of at most 900 s. If you need a Spark-style long file, use Timeline 1.0, which renders up to 1,800 seconds.
After the cut
The ad file must still be under 500 MB, and the two bounds above give the range: at least about 38.7 MB if the file sits exactly on the 516 kbps floor, and at most 500 MB, which is 6.67 Mbps on average. Check the size of the returned file. If you also want captions, burn them in a separate job after the trim and keep the order trim, then filter, then captions, so that each step works on the shorter clip.
Sources
Related posts
More in Use cases
- Cut a 60 s clip to a 15 s TikTok ad: one video-trim call, $0.02
Take 15 s starting at second 22 of a 60 s vertical clip with Sume video-trim for $0.02, then check TikTok's 540x960 minimum and 516 kbps floor on the result.
- Dental clinic intro reel: one 30 s Wan 3.0 job or three Kling 3 clips
A 30-second waiting-room-to-chair story costs $3.75 as one Wan 3.0 720p job, or $4.20 as two silent Kling 3 clips. Which one to pick and why.
- Six dental education Shorts from stills, voice and captions
A patient-education video from four stills, a 750-character voice-over and burned captions, with no video model. Cost per video and for six topics.
- Digital signage loop with Omni: 9:16 at 4K, cost and limits
A 10-second 9:16 loop for a lobby screen with Gemini Omni Flash: $3.75 at 4K on Sume, $1.25 at 720p. Google labels its 4K output as upscaled.
Written by Sume