Orshot Logo
OrshotDocs
Dynamic Parameters

Video Element Parameters

Control video playback, trim settings, and audio dynamically using video parameters

Overview

Video element parameters allow you to dynamically control video content, playback settings, and trim points when rendering templates as video. You can pass custom video URLs and configure playback behavior at render time.

Video parameters only apply when rendering templates with video elements as MP4, WebM, or GIF formats.

How It Works

When you add a video element to your template and set a parameter ID (e.g., bgVideo), you can override its properties using the format:

parameterID.property

Supported Video Parameters

ParameterTypeDescription
{id}stringCustom video URL to replace the template video
{id}.trimStartnumberStart time in seconds
{id}.trimEndnumberEnd time in seconds
{id}.mutedbooleantrue to mute audio, false to include audio
{id}.loopbooleantrue to loop the video

Basic Usage

Replace Video URL

Pass a custom video URL using the parameter ID:

{
  "modifications": {
    "bgVideo": "https://example.com/custom-video.mp4"
  },
  "response": {
    "format": "mp4"
  }
}

Trim Video

Control which portion of the video to use:

{
  "modifications": {
    "bgVideo": "https://example.com/video.mp4",
    "bgVideo.trimStart": 5,
    "bgVideo.trimEnd": 15
  },
  "response": {
    "format": "mp4"
  }
}

This extracts a 10-second clip from 5s to 15s of the source video.

Control Audio

Include or exclude audio from the video:

{
  "modifications": {
    "bgVideo": "https://example.com/video.mp4",
    "bgVideo.muted": false
  },
  "response": {
    "format": "mp4"
  }
}

GIF format does not support audio. The muted parameter is ignored for GIF outputs.

Enable Looping

Loop a short video to fill the duration:

{
  "modifications": {
    "bgVideo": "https://example.com/short-clip.mp4",
    "bgVideo.loop": true
  },
  "response": {
    "format": "mp4"
  }
}

Complete Example

Combine all video parameters:

{
  "templateId": "your-template-id",
  "modifications": {
    "bgVideo": "https://example.com/product-demo.mp4",
    "bgVideo.trimStart": 0,
    "bgVideo.trimEnd": 10,
    "bgVideo.muted": false,
    "bgVideo.loop": false,
    "title": "Product Launch",
    "title.fontSize": "48px"
  },
  "response": {
    "type": "url",
    "format": "mp4"
  }
}

Multi-Page Templates

For templates with multiple pages containing videos, prefix with the page number:

{
  "modifications": {
    "page1@introVideo": "https://example.com/intro.mp4",
    "page1@introVideo.trimEnd": 5,
    "page2@demoVideo": "https://example.com/demo.mp4",
    "page2@demoVideo.muted": true
  },
  "response": {
    "format": "mp4"
  }
}

Combining with Style Parameters

Video parameters work alongside other dynamic parameters:

{
  "modifications": {
    "bgVideo": "https://example.com/video.mp4",
    "bgVideo.trimStart": 2,
    "bgVideo.trimEnd": 12,
    "overlayText": "Summer Collection",
    "overlayText.fontSize": "64px",
    "overlayText.color": "#ffffff",
    "logo": "https://example.com/logo.png"
  },
  "response": {
    "format": "mp4"
  }
}

API Integration Examples

REST API

curl -X POST https://api.orshot.com/v1/studio/render \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "video-template-id",
    "modifications": {
      "productVideo": "https://example.com/product.mp4",
      "productVideo.trimStart": 0,
      "productVideo.trimEnd": 15,
      "productVideo.muted": false,
      "headline": "New Arrival",
      "headline.fontSize": "56px"
    },
    "response": {
      "type": "url",
      "format": "mp4"
    }
  }'

Video Duration & Pricing

The output video duration is determined by:

  1. Template video settings - If no custom trim is passed
  2. Custom trim settings - trimEnd - trimStart in seconds
  3. Source video duration - If trim exceeds source length

Video generation is billed at 8 renders per second of output video. For example:

  • 10-second video = 80 renders
  • 30-second video = 240 renders

Supported Video Formats

Orshot accepts the following video URL formats:

  • .mp4 (H.264 recommended)
  • .webm (VP9)
  • .mov

Ensure your video URLs are publicly accessible for Orshot to fetch and process them.

Limitations

  1. URL Access - Video URLs must be publicly accessible (no authentication)
  2. File Size - Large videos may increase processing time
  3. Audio in GIF - GIF format does not support audio
  4. Single Audio Source - Only one unmuted video element's audio is included in the output

Troubleshooting

Video Not Playing

Issue: Output video shows static image instead of video

Solutions:

  1. Verify the video URL is publicly accessible
  2. Check the video format is supported (MP4, WebM, MOV)
  3. Ensure response.format is set to mp4, webm, or gif

Audio Not Included

Issue: Output video has no audio

Solutions:

  1. Set {videoId}.muted to false
  2. Ensure the source video has an audio track
  3. Check that response.format is not gif

Trim Not Working

Issue: Video doesn't respect trim settings

Solutions:

  1. Verify trimStart is less than trimEnd
  2. Ensure trim values don't exceed source video duration
  3. Use numbers (not strings) for trim values

Next Steps