Timeline output fps for a Short: 24, 25, 30 or 60, and the warning
Timeline 1.0 output.fps accepts 24, 25, 30 or 60. Leave it out and the render follows the sources. Read output_fps_resamples_sources before you upload.

Set output.fps to 24, 25, 30 or 60 if you need a specific rate, and leave it out if you want the render to follow the sources. The Timeline 1.0 docs say a rate that differs from a source's rate makes the job repeat or drop a frame every few frames, which shows up as judder on motion, and the job reports it as output_fps_resamples_sources.
What happens if you leave it out
When output.fps is omitted, the longest video sources decide the rate. Stills have no rate, and 30 applies only when no source has one. So a render of two 24 fps clips comes out at 24, and a render of a 30 fps clip and a 24 fps clip follows the longer one. The docs describe this as matching the sources, and they do not promise it matches a platform's preference.
The rules in one table
The values and behaviors below are from the docs (read 2026-10-05).
| Situation | Result |
|---|---|
output.fps omitted | Follows the longest video sources; 30 only if no source has a rate |
output.fps equals the source rate | No resample |
output.fps differs from a source | Frames repeated or dropped; warning output_fps_resamples_sources |
| Allowed values | 24, 25, 30, 60 |
| Soft warnings | Not failures; the job still completes |
Mixed sources
Model clips do not all share a rate. If you stitch clips from two models, the rates may differ, and the warning tells you what rate the sources wanted. Read warnings[] in GET /v1/jobs/:id/result after every render, because a soft warning does not fail the job and is easy to miss.
Conform before you assemble
To remove a mismatch, either pick the rate of the main clip, or conform the sources first. Video trim with precision: exact accepts an output with an fps of 24, 25, 30 or 60, so a clip can be conformed to one rate before it goes into the timeline:
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: conform-30-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/clip24.mp4",
"start": 0,
"duration": 12,
"precision": "exact",
"output": { "fps": 30 }
}'What conforming does and does not do
That makes a 30 fps copy. Converting 24 fps to 30 means the encoder has to repeat frames to fill the gap, so do not expect the result to look smoother than the source. It only removes a mismatch inside the timeline.
What the platform pages say
I did not read a platform page that requires a particular frame rate for a Short, a Reel or a TikTok ad, apart from Meta's Reels ad page, which lists a fixed frame rate. So the choice here is about avoiding judder, not about meeting a platform rule. YouTube Help (read 2026-10-05) gives 3 minutes as the Shorts maximum and no frame rate on the page I read.
Where you will see it
Judder is easy to miss on a still frame and obvious in motion. A slow pan at 24 fps stretched to 30 by repeating every fourth frame stutters in a regular rhythm that the eye picks up quickly. If the clip is mostly static, such as a talking head, the effect is small. If the clip has a fast camera move, check the file at full speed before you upload it, not just through a still.
Set it in a batch
For a batch of clips that go through the same pipeline, pick one rate for the whole batch and set it explicitly. Then every output has the same rate, and a change in a source's rate does not silently change the output rate. That is a practical argument for setting fps even when your sources agree today.
Treat warnings as a to-do
The warning is soft, so the job still completes and you still pay for it. A script that treats any warnings[] entry as a reason to look at the file will catch this early. The warning names the rate the sources wanted, so you can compare it with what you set and decide whether to conform the sources or accept the output.
Check the output
Probe the final file with video inspect to confirm what came out. The result's probe fields describe the file, and a still from the middle of a moving shot is a quick visual check on whether motion looks even.
The takeaway
Leave fps out when your sources share a rate, set it when they do not, and read the warnings after every render.
Sources
Related posts
More in Media tools
- Timeline output size for 21:9 and 16:9 clips: default is 1080x1920
Sume Timeline renders 1080x1920 portrait unless you set output.width and height: even integers, 256 to 2160. Sizes that work for 21:9 and 16:9 AI clips.
- Timeline slot under 0.2 s refused: fast-cut hooks for Shorts in Sume
Sume Timeline 1.0 needs every video slot duration to be at least 0.2 s. Merge sub-0.2 s flashes into a neighbor, or hold a still.
- Trim an AI clip's slow intro for a Short: keyframe cut or exact cut?
Sume video-trim has two precisions: exact re-encodes to the frame, keyframe is a stream copy that can start a GOP early. Which one to use before a Short.
- Trim an HDR clip: why precision keyframe works and exact does not
Sume video trim refuses HDR sources on the exact re-encode but copies them on keyframe. What each mode keeps, and how to cut an HDR clip without flattening it.
Written by Sume