Payload and output preview

Payload example

{
  "version": "v1",
  "output": {
    "width": 1080,
    "height": 1920,
    "fps": 30
  },
  "assets": [
    { "id": "clip-1", "type": "video", "url": "https://pub-2ad5592bc4ca44abb609acfc0b7c5ceb.r2.dev/reel-forge-website-assets/Porsche%20vid%201.mp4" },
    { "id": "clip-2", "type": "video", "url": "https://pub-2ad5592bc4ca44abb609acfc0b7c5ceb.r2.dev/reel-forge-website-assets/porsche%20vid%202.mp4" },
    { "id": "clip-3", "type": "video", "url": "https://pub-2ad5592bc4ca44abb609acfc0b7c5ceb.r2.dev/reel-forge-website-assets/porsche%20vid%203.mp4" }
  ],
  "composition": {
    "auto_stitch": true,
    "timeline": [
      { "id": "layer-1", "type": "video", "asset_id": "clip-1" },
      { "id": "layer-2", "type": "video", "asset_id": "clip-2" },
      { "id": "layer-3", "type": "video", "asset_id": "clip-3" }
    ]
  }
}

Output preview

Three 9:16 vertical clips stitched sequentially using auto_stitch: true.

Stitch Together Videos

Use composition.auto_stitch: true to append clips in timeline order without calculating start offsets manually.

Input assets

For this example, we use three 9:16 vertical clips of a Porsche, each approximately 5 seconds long:

Why this works

When auto_stitch: true is enabled:

  1. ReelForge probes the duration of each video asset.
  2. It automatically calculates the start_time for each layer based on the cumulative duration of previous layers.
  3. It handles the cropping of 9:16 vertical content to fit the output dimensions using standard "cover" logic.