Shotcut operation reference
Generated from the current declarations. Do not edit this file by hand.
Types, limits and defaults below describe resolved values. Runtime expressions must produce these types. Unknown options are rejected; defaults apply only when omitted. Constructor options must be constant after document composition.
Index#
editTimeline#
Cuts, reorders and repeats frame ranges from local video files into one Shotcut (MLT) timeline. It publishes a lossless FFV1 video.mkv, the editable project.mlt (which needs its captured media files beside it) and project-bundle.zip containing both. Every rendered frame is compared with the selected source frames, and the project is reloaded and re-rendered to confirm it reproduces the same video. Choose it for frame-exact edits of existing videos; use FFmpeg encodeFrames to make a video from still images.
Common mistakes and assumptions:
- Sources must be silent, progressive, square-pixel videos at exactly the timeline fps, width and height; there is no resizing or rate conversion.
- startFrame is zero-based and frameCount is a number of frames, not seconds.
- Audio, gaps, transitions, filters and multiple tracks are not supported.
- Keep project.mlt together with its asset-XX.media files, or use project-bundle.zip, when moving the project.
Native binding: Shotcut MLT XML playlist. Output kind: ["video","videoProject","videoProjectBundle"].
Inputs: none.
| Option | Meaning | Type / constraints | Default |
|---|---|---|---|
assets |
Source videos available to the clips, 1 to 16 entries, each with a unique name and an absolute path. Every declared asset must be used by at least one clip. | {"type":"array","minItems":1,"maxItems":16,"items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"required":true},"file":{"type":"string","minLength":1,"maxLength":4096,"required":true}}}} |
required |
clips |
Timeline order: 1 to 128 clips placed back-to-back from frame 0 with no gaps. The total of all frameCount values is the timeline length and must not exceed 600 frames. | {"type":"array","minItems":1,"maxItems":128,"items":{"type":"object","properties":{"asset":{"type":"string","minLength":1,"maxLength":64,"required":true},"startFrame":{"type":"integer","minimum":0,"maximum":599,"default":0},"frameCount":{"type":"integer","minimum":1,"maximum":600,"required":true}}}} |
required |
fps |
Integer frames per second; every source must have this constant rate. Default 25. | {"type":"integer","minimum":1,"maximum":120} |
25 |
width |
Timeline and source width in pixels; no resizing. Default 1280. | {"type":"integer","minimum":2,"maximum":4096} |
1280 |
height |
Timeline and source height in pixels; no resizing. Default 720. | {"type":"integer","minimum":2,"maximum":4096} |
720 |
threads |
Native decoding and rendering threads, 1 to 16. A workflow thread allocation, if given, must equal this value. | {"type":"integer","minimum":1,"maximum":16} |
1 |