Change frame rate when compositing: output_fps_resamples_sources
Sume Timeline compose defaults to the video layer's own frame rate. Set output.fps to a different rate and it warns output_fps_resamples_sources.

Leave output.fps out of a Sume compose and the shot keeps the video layer's own frame rate, which is the only rate that repeats or drops no frame. Set an explicit output.fps that differs from the clip's rate and the job warns output_fps_resamples_sources.
This is from the Timeline compose docs, read 2026-10-01. Runway's changelog added a frame-rate converter on Sep 17, 2026; for that comparison see the Runway frame-rate post.
What is the default output?
1080x1920 MP4 at the video layer's own frame rate. Set output.width and output.height to the timeline you will assemble into, so the shot is not rescaled twice.
What does the warning mean?
The compose has two sources, a still and a clip, and an explicit rate that differs from the clip's means the clip is resampled. It is a warning, so the job still succeeds.
| `output.fps` | Result |
|---|---|
| Omitted | Video layer's own rate; no frame repeated or dropped |
| Equal to the clip's rate | Same as omitted |
| Different from the clip's rate | Warning output_fps_resamples_sources |
Should I set output.fps at all?
Only to match the timeline you will join the shot into. If every clip already shares a rate, omit it. A mismatch at assembly is a separate concern; see the frame-rate judder warning.
What does a request with a rate look like?
The sample sets 25 fps explicitly; if the clip is not 25 fps, expect the warning.
curl -X POST https://api.sume.com/v1/timeline-1.0/compose \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: compose-fps-001" \
-d '{
"operation": "stack",
"image": { "url": "https://media.sume.com/artifacts/artf_demo/poster.png" },
"video": { "url": "https://media.sume.com/artifacts/artf_demo/talk.mp4" },
"output": { "width": 720, "height": 1280, "fps": 25 }
}'Sources
Related posts
More in Developers
- Add an image over a video: position, width_ratio, margin_ratio
Sume Timeline compose overlay places a still with position top, center or bottom, width_ratio 0.05 to 1 (default 0.9) and margin_ratio 0 to 0.45 (default 0.05).
- Fade out music at the end of a video: two fades, two caps
In Timeline 1.0, soundtrack.fade_out_seconds fades only the music bed (max 10 s). output.fade_out_seconds fades the whole render (0 to 5 s). Which to use.
- Crossfade longer than 1 second: the Timeline transition limit
Timeline 1.0 transitions are capped at 1 second and 50 percent of the shorter neighbouring clip. Longer ones return transition_too_long. What to do instead.
- Cancelling a Trigger.dev run does not cancel the Sume job
Trigger.dev cancel stops the task and its child runs. A Sume job that already started generating cannot be cancelled, and still bills. Store the job id.
Written by Sume