After a frame-rate change: conform the clip in Sume Video trim
Got a clip at 48 or 120 fps back from an Enhance Frame Rate tool? Sume Video trim re-encodes to 24, 25, 30 or 60 fps and 256 to 2160 px, for $0.02 per job.

If a rate change leaves you with a 48 or 120 fps file, Sume Video trim can conform it to 24, 25, 30 or 60 fps in one call at $0.02 per job. The output block takes width and height from 256 to 2160 and needs precision exact. Sume's docs describe it as a conform, not frame interpolation, so do not expect added smoothness.
What does the output block accept?
The source must be a media.sume.com file of up to 1800 seconds, and the output is at most 900 seconds. Asking for output with precision keyframe is refused with video_trim_output_requires_exact.
| Option | Values |
|---|---|
| output.fps | 24, 25, 30 or 60 |
| output.width, output.height | 256 to 2160 |
| precision | exact (default) or keyframe |
| audio | keep or drop |
| duration | 0.2 to 900 s |
Why conform at all?
A Timeline render takes sources and an output rate. If you omit output.fps it matches the sources. Mixed rates in one render are met by repeating or dropping frames, and Sume reports output_fps_resamples_sources. Conforming each part first gives you one clear point where the rate changes.
What does the call look like?
Use a stable Idempotency-Key so a retry does not create a second job.
import os, requests
r = requests.post(
"https://api.sume.com/v1/video-trim",
headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Idempotency-Key": "conform-60-001"},
json={"video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
"start": 0, "duration": 60, "precision": "exact",
"output": {"width": 1920, "height": 1080, "fps": 60}},
timeout=60,
)
r.raise_for_status()
print(r.status_code, r.json())What is the catch?
A file from outside Sume must be in your media library before trim can read it. Going from 120 fps to 60 fps halves the frame count, so detail from the extra frames is lost. If you want to keep the extra frames, keep the file and use Sume only for the parts of the edit that fit its rates.
How do I check the result?
Probe the output with Video inspect and frames set to false. Confirm fps, width, height and duration_seconds match what you asked for. Then compare a few stills with Video frames at the same time on the source and on the output. A trim with precision exact reports the cut you asked for, so the start time should match. Sume's docs list the exact limits and error codes for each call, so read the page for the endpoint you use before you build on it, and keep a short note of which limits applied to your run, so a later change is easy to spot. If a call is refused, the error code names the cause, and fixing that one input is usually enough to retry safely with the same Idempotency-Key.
Sources
Related posts
More in Use cases
- EU AI icon: embedded in the video or a UI overlay, and when reshared
The Commission says the EU AI icon should be embedded in the content unless an equivalent like a UI overlay exists, and be visible on reshare or download.
- EU AI icon licence: free, no attribution, not proof of compliance
The Commission's EU AI icons are free with no attribution, but using one does not prove compliance, and a non-signatory using one does not signal adherence.
- Event recap: trim dead pauses from a talk with inspect and trim
YouTube's coming editing assistant promises to trim pauses. Until then, find silent gaps in a talk from transcript segments and cut keeper ranges with Sume.
- Event recap video from phone clips: trim, join, add music
Make a 45-second recap from phone footage: trim each clip at $0.02, join with fades in one Timeline render at $0.10, and add a $0.125 music bed.
Written by Sume