Threads video frame rate 23 to 60 fps: conform with video-trim
Threads accepts 23 to 60 fps video. Sume video-trim output.fps takes 24, 25, 30 or 60, all inside that range. Conform a mixed-rate clip in one call.

Threads video must run between 23 and 60 frames per second. Sume video-trim accepts output.fps of 24, 25, 30 or 60, and every one of them sits inside the Threads range, so one trim call can conform an odd-rate source.
Which values are safe?
Only exact-precision trims can conform, because the docs state that output is exact only.
| Value | Inside 23 to 60? | Where it applies |
|---|---|---|
| 24 | Yes | output.fps on video-trim and timeline |
| 25 | Yes | output.fps |
| 30 | Yes | output.fps |
| 60 | Yes | output.fps |
What does the call look like?
This request cuts 30 seconds and forces 1080 by 1920 at 30 fps. Do not combine output with precision: keyframe, because the API refuses that with video_trim_output_requires_exact.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: threads-fps-001" \
-d '{"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4", "start": 0, "duration": 30, "output": {"width": 1080, "height": 1920, "fps": 30}}'Why conform at all?
The timeline docs warn that a render whose rate differs from its sources repeats or drops frames and can judder, and report output_fps_resamples_sources. Choosing 24, 25, 30 or 60 deliberately is better than inheriting a value outside 23 to 60.
The trim price in the docs is $0.02 per job.
Sources
Related posts
More in Developers
- Threads video audio: AAC, 128 kbps, 48 kHz max, and what trim keeps
Threads wants AAC audio at up to 48 kHz and 128 kbps. Sume trim remuxes kept audio as AAC but has no bitrate field, so probe the clip and check the file.
- TikTok bans some AI content even if labeled: lint prompts first
TikTok prohibits AI that shows fake authoritative sources, crisis events, endorsements or under-18 likeness. A small Python check to run before a Sume render.
- TikTok Direct Post init: 6 requests a minute per token, queue clips
TikTok limits each user access_token to 6 init requests per minute on Direct Post. Queue finished Sume clips and release them at that pace.
- TikTok publish_id status: poll it after the Sume job webhook fires
The TikTok Direct Post page I read returns a publish_id to check status and mentions no webhook. Let Sume's webhook trigger the post, then poll TikTok.
Written by Sume