Shapes and graphics

Draw an SVG path as a clip

SVG path data straight out of a design tool, drawn as a clip. The viewBox is the space the path was written in.

Shown on An arrow pointing at a cup of coffee

Before · the same request without it
After · rendered from the request below

The entry

Use it as a clip's asset, on a track above the footage.

{
"asset": {
"type": "shape",
"shape": "path",
"path": "M10 50 L60 50 L60 30 L90 55 L60 80 L60 60 L10 60 Z",
"viewBox": "0 0 100 100",
"color": "#34D399"
}
}

Every setting and default is in the docs

Run it

The whole request behind the render above. Paste it as it is, or swap the file for your own.

job.ts
import { createClient, outputUrl } from "@rendobar/sdk";
const rb = createClient({ apiKey: process.env.RENDOBAR_API_KEY });
const job = await rb.jobs.run({
type: "compose",
params: {
schemaVersion: 1,
output: {
format: "mp4",
resolution: {
width: 960,
height: 540
}
},
timeline: {
tracks: [
{
clips: [
{
asset: {
type: "video",
src: "https://cdn.rendobar.com/compose/showcase/media/coffee.mp4"
},
start: 0
}
]
},
{
clips: [
{
asset: {
type: "shape",
shape: "path",
path: "M10 50 L60 50 L60 30 L90 55 L60 80 L60 60 L10 60 Z",
viewBox: "0 0 100 100",
color: "#34D399"
},
transform: {
size: {
width: "20%",
height: "20%"
},
position: {
x: "28%",
y: "52%"
}
},
start: 0,
length: 6
}
]
}
]
}
},
});
console.log(outputUrl(job));

Install with npm i @rendobar/sdk. jobs.run() submits and waits, so it returns the finished job in one call.

terminal
curl https://api.rendobar.com/jobs \
-H "Authorization: Bearer $RENDOBAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"compose","params":{"schemaVersion":1,"output":{"format":"mp4","resolution":{"width":960,"height":540}},"timeline":{"tracks":[{"clips":[{"asset":{"type":"video","src":"https://cdn.rendobar.com/compose/showcase/media/coffee.mp4"},"start":0}]},{"clips":[{"asset":{"type":"shape","shape":"path","path":"M10 50 L60 50 L60 30 L90 55 L60 80 L60 60 L10 60 Z","viewBox":"0 0 100 100","color":"#34D399"},"transform":{"size":{"width":"20%","height":"20%"},"position":{"x":"28%","y":"52%"}},"start":0,"length":6}]}]}}}'

Returns immediately with a job id. Poll GET /jobs/{id} or register a webhook rather than blocking on the request.

Questions

What does the SVG path clip do in compose?

SVG path data straight out of a design tool, drawn as a clip. The viewBox is the space the path was written in.

How do I add SVG path to a video with an API?

Send a compose job to the Rendobar API with this entry in the timeline: {"asset":{"type":"shape","shape":"path","path":"M10 50 L60 50 L60 30 L90 55 L60 80 L60 60 L10 60 Z","viewBox":"0 0 100 100","color":"#34D399"}}. Use it as a clip's asset, on a track above the footage. The request on this page is complete and renders as shown.

Footage and sound