Timeline render: 61 seconds bills 2 minutes ($0.20), 60 bills $0.10

Timeline 1.0 bills $0.10 per ceil(output minute), minimum one. A 60 s render is $0.10; 61 s rounds up to 2 minutes, $0.20. Use the free plan call to check.

4 min readSume
All posts

Timeline 1.0 charges $0.10 per output minute, rounded up, with a one-minute minimum. A 60-second render is 1 minute and $0.10; a 61-second render is ceil(61 / 60) = 2 minutes and $0.20. One extra second doubles the bill.

The rounding

The reserve is ceil(audio.duration_seconds / 60) minutes, per the Timeline docs read 2026-10-09.

Timeline render cost by output length, as of 2026-10-09
audio.duration_secondsBillable minutesArithmeticCost
11 (minimum)1 x 0.10$0.10
601ceil(60/60) x 0.10$0.10
612ceil(61/60) x 0.10$0.20
12022 x 0.10$0.20
12133 x 0.10$0.30

Check before you render

POST /v1/timeline-1.0/plan is unbilled. It returns duration_seconds, segment_count, billable_minutes and estimated_cost_usd_micros without creating a job or reserving credit. It needs no idempotency key. It cannot predict short-source pad or loop warnings.

curl -X POST https://api.sume.com/v1/timeline-1.0/plan \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"audio":{"mode":"silence","duration_seconds":61},"video":[{"source_url":"https://media.sume.com/artifacts/artf_demo/a.mp4","start":0,"duration":61}]}'

Trimming the spine

audio.duration_seconds sets the output length. If your voiceover is 61.4 seconds, either cut it to 60 with audio.source_in and a 60-second duration, or accept 2 minutes. Coverage by video[] slots may stop at most 0.5 s before the end of the spine, so shorten the slots too.

Notes

  • Render uses worker ffmpeg only; there is no provider inference.
  • Default output is 1080x1920 MP4.
  • Soft warnings, such as padded or looped short sources, are not failures.

Worked example

A 61.4 second voiceover with 60-second visuals is billed as 2 minutes ($0.20). Cutting the tail by 1.4 seconds brings the render to 60 seconds and $0.10. For a series of 50 episodes that each run 61 seconds, the difference is 50 x $0.20 = $10.00 versus 50 x $0.10 = $5.00. Plan the script length to land at or under a whole minute. Every media job follows the same lifecycle: submit with an Idempotency-Key, receive a job, poll GET /v1/jobs/:id/status until it is ready, then read GET /v1/jobs/:id/result. A retry with the same key does not queue a second job, so a network error during submit never doubles a charge.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume