Payload and output preview
Payload example
{
"version": "v1",
"output": {
"width": 1080,
"height": 1920,
"fps": 30
},
"assets": [
{ "id": "porsche-video-audio", "type": "video", "url": "https://pub-2ad5592bc4ca44abb609acfc0b7c5ceb.r2.dev/reel-forge-website-assets/prsche%20stitched%20with%20audio.mp4" }
],
"composition": {
"timeline": [
{ "id": "base-video", "type": "video", "asset_id": "porsche-video-audio", "time": { "start_seconds": 0, "duration_seconds": 15.1 } }
],
"global_styles": {
"text": {
"font_family": "Inter",
"font_size": 74,
"font_weight": 800,
"color": "#FFFFFF",
"text_align": "center",
"stroke_color": "#000000",
"stroke_width": 3,
"shadow_color": "rgba(0,0,0,0.35)",
"shadow_offset_x": 0,
"shadow_offset_y": 2,
"shadow_blur": 8
}
},
"global_layouts": {
"text": { "x": "8%", "y": "10%", "width": "84%", "height": "14%" }
},
"text_overlays": [
{ "id": "overlay-1", "content": "Porsche 911 Turbo S", "time": { "start_seconds": 0.6, "duration_seconds": 3.4 } },
{ "id": "overlay-2", "content": "Launch control energy", "time": { "start_seconds": 5.2, "duration_seconds": 3.6 } },
{ "id": "overlay-3", "content": "Built for standout reels", "time": { "start_seconds": 10.0, "duration_seconds": 4.2 } }
]
}
}Output preview
Porsche montage with three timed text overlays using global_styles.text and global_layouts.text.
Text Overlays
Use composition.text_overlays for on-screen text with timing, style, and layout controls. Define shared defaults once via global_styles.text and global_layouts.text, then each overlay only needs content and time.
Input assets
This example uses the Porsche video with audio as the base layer and adds three timed text overlays:
- Source Video: Porsche stitched with audio
Overlay text (defined in payload):
- "Porsche 911 Turbo S"
- "Launch control energy"
- "Built for standout reels"
Why this works
When adding text overlays:
- Global defaults:
global_styles.textandglobal_layouts.textapply to all overlays, so you avoid repeating font size, color, stroke, and position per overlay. - Timed windows: Each overlay has its own
time(start_seconds,duration_seconds), so text appears and disappears at the right moments. - Local overrides: Per-overlay
styleorlayoutkeys override the global defaults when you need a one-off change.