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.

5 min readSume
All posts

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).

Timeline 1.0 output.fps behavior, Sume docs (read 2026-10-05)
SituationResult
output.fps omittedFollows the longest video sources; 30 only if no source has a rate
output.fps equals the source rateNo resample
output.fps differs from a sourceFrames repeated or dropped; warning output_fps_resamples_sources
Allowed values24, 25, 30, 60
Soft warningsNot 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

All Media tools posts

Written by Sume