48 or 50 fps for YouTube: Sume output.fps accepts 24, 25, 30, 60

YouTube lists 24, 25, 30, 48, 50 and 60 fps as common rates. Sume Timeline's output.fps takes 24, 25, 30 or 60, so omit it for 48 or 50 sources. Why.

5 min readSume
All posts

YouTube lists 24, 25, 30, 48, 50 and 60 frames per second as common rates, and Sume Timeline's output.fps field accepts only 24, 25, 30 or 60. For a 48 or 50 fps source, leave output.fps out. Timeline then renders at the rate of the sources, and that keeps 48 or 50. YouTube's encoding page (read 2026-10-08) also says to encode at the rate the content was recorded, which is the same advice.

The two lists

The left list is from YouTube's upload encoding page. The right list is from the Sume Timeline docs.

Frame rates: YouTube's common list vs Sume Timeline output.fps (as of 2026-10-08)
RateOn YouTube's common listAccepted by output.fps
24YesYes
25YesYes
30YesYes
48YesNo; omit output.fps
50YesNo; omit output.fps
60YesYes

What omitting does

The Timeline docs say that without output.fps the job renders at the rate of the sources. The longest video sources decide the rate, stills have no rate, and 30 applies only when no source has a rate. If you do set a rate that differs from a source, the job repeats or drops a frame every few frames, which judders on motion, and it reports output_fps_resamples_sources with the rate the sources wanted.

So a 50 fps source set to output.fps 25 or 30 is resampled with that warning, and a 50 fps source with the field omitted passes through at 50. Mixed-rate sources are the one case to check: pick the rate by hand only if you accept the resample.

A check before you render

Use POST /v1/timeline-1.0/plan, which is unbilled, and then read warnings on the finished job. If output_fps_resamples_sources appears, either remove output.fps or make the sources share one rate. Video trim also takes an output block with fps of 24, 25, 30 or 60, so the same limit applies there. The 23.976 case is in this post.

  • 48 or 50 fps sources: omit output.fps.
  • One rate across all sources: set it only if it matches.
  • Mixed rates: expect output_fps_resamples_sources.

A worked example with mixed sources

Say a project has two 50 fps clips and one 30 fps clip. The docs say the longest video sources decide the rate when output.fps is omitted, so the answer depends on which clips are longest. If the 50 fps clips fill most of the time, the output is 50 fps and the 30 fps clip is resampled, with output_fps_resamples_sources reported. If you set output.fps to 30, the two 50 fps clips are resampled instead.

The honest fix is to shoot or generate at one rate. When that is not possible, choose the rate of the clip that carries the motion, and accept a resample on the clip that is mostly static. Stills have no rate and never force a resample.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume