Video
Video elements play a video file inline on the slide. Click Video in the top toolbar to insert.
Adding a video
Two sources, both via the inspector:
- Upload — click "Upload" or drop a file. Accepted: MP4, WebM. Files store in your org's bucket; a signed URL goes into
src. - Paste URL — any HTTPS-served video URL works (CDN, Vimeo direct file, etc.). YouTube/Vimeo embed URLs need to use the Embed element instead — those aren't direct video files.
Inspector
| Name | Type | Description |
|---|---|---|
| src* | string (URL) | Video file URL (MP4 or WebM). |
| autoplay | boolean | Start playing as soon as the slide is visible. Required to be paired with `muted: true` for browser autoplay policies on iOS/Safari. Default: false. |
| loop | boolean | Loop the video continuously. Default: false. |
| muted | boolean | Start muted. Browsers block autoplay with sound — set this to true if autoplay is on. Default: false. |
| posterUrl | string (URL) | Image shown before the video starts. Schema-only today — no inspector field yet; set via JSON / import. |
Autoplay rules
Browsers block videos that try to autoplay with sound. To get reliable autoplay on a slide:
json
{
"type": "video",
"src": "https://...",
"autoplay": true,
"muted": true,
"loop": true
}
autoplay: true + muted: true is the only combination that survives every modern browser. If you set autoplay: true and leave muted: false, the video will load but the visitor has to manually press play.
Common patterns
Codec recommendations
For broad compatibility, encode as:
- H.264 MP4 — works everywhere
- VP9 WebM — better compression for the same quality if your audience is on modern browsers (Chrome, Firefox, Edge)
Avoid HEVC / H.265 for inline web playback — Safari supports it but Chrome/Firefox don't.
Schema reference
Video element:
| Name | Type | Description |
|---|---|---|
| type* | "video" | Discriminator |
| src* | string | Video URL |
| autoplay | boolean | Default: false |
| loop | boolean | Default: false |
| muted | boolean | Default: false |
| posterUrl | string | Image shown pre-play. JSON-only today. |