Tighten a stitched Omni cut: source_in and duration per timeline slot

Cut the first half-second off each Omni clip without a trim job: source_in and a shorter duration per Sume timeline slot, with the starts and spine math.

4 min readSume
All posts

To cut the first half-second off each Omni clip before it joins a Sume timeline, set source_in: 0.5 and a shorter duration on the slot instead of running a trim job. Four 10-second clips cut to 9 seconds each give a 36-second video; slots start at 0, 9, 18 and 27, and audio.duration_seconds is 36. The in-point is applied in the one timeline render, so there is no extra job and no extra file.

Slot fields

The Timeline docs define these (Sume docs: Timeline 1.0, read 2026-10-05):

  • video[].source_in: the in-point into the file.
  • video[].duration: on-screen length, at least 0.2 seconds.
  • video[].start: on-spine start. video[0].start must be 0, and later starts must increase. Declared starts are authoritative.
  • Coverage can stop at most 0.5 seconds before the end of the spine, so the last slot must reach nearly to audio.duration_seconds.

Request

Starts are the running total of the durations: 0, 9, 18, 27. A 0.25 second fade goes only on slots after the first.

{
  "audio": { "mode": "silence", "duration_seconds": 36 },
  "video": [
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s1.mp4",
      "start": 0, "source_in": 0.5, "duration": 9 },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s2.mp4",
      "start": 9, "source_in": 0.5, "duration": 9,
      "transition": { "type": "fade", "duration": 0.25 } },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s3.mp4",
      "start": 18, "source_in": 0.5, "duration": 9,
      "transition": { "type": "fade", "duration": 0.25 } },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s4.mp4",
      "start": 27, "source_in": 0.5, "duration": 9,
      "transition": { "type": "fade", "duration": 0.25 } }
  ]
}

Timeline slot or trim job

The timeline route does not make a new file you can reuse. If you want the 3-second window of a clip as a video reference for the next Omni shot, which accepts references of at most 3 seconds, that is a trim job (Sume docs: Video trim, read 2026-10-05).

Two ways to remove the head of a clip (Sume docs, read 2026-10-05)
MethodWhereCostUse when
source_in plus duration on the slotTimeline 1.0 renderInside the render feeYou only need the cut in this one video
Video trim jobPOST /v1/video-trim$0.02 per job per the docsYou want a durable trimmed file to reuse, or to send as a reference

Why you might cut the head

You pay for each clip's full length: Omni bills per output second, so a 10-second job is 10 seconds of the rate even if 9 end up on screen (Sume docs: Video Router, read 2026-10-05). Cutting is for editing, not saving. Reasons to do it: the clip's first frames repeat the last frame of the previous shot, you want a tighter beat between shots, or the first half-second has a settling movement you do not want. Check a draft first; if the head is fine, leave it.

With a first-frame chain, the first frame of clip N+1 is the last frame of clip N. Showing both frames back to back makes a one-frame hold. Cutting a short head from the following clip removes the duplicate.

Do the sum on paper first. Four slots of 9 seconds each give starts of 0, 9, 18 and 27, and a spine of 36 seconds. With a 0.25 second fade on slots two to four, the declared starts stay the same, because declared starts are authoritative.

If a clip is cut at the tail rather than the head, leave source_in at 0 and shorten duration. If you cut both ends, set both. The slot does not need to use the whole file, and the part it does not use is simply not shown.

Plan the body before you render it. The plan call is unbilled and rejects overlapping or non-increasing starts, which are the usual mistakes when slot durations change by hand.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume