Layers

Mask a video with an image

Show the clip only where an image says: white or opaque keeps it, black or clear cuts it away, grey fades it. A picture seen through a logo, or any shape you can draw.

Shown on A VW bus on a causeway

Before · the same request without it
After · The footage seen through the wordmark: a logo reveal, with the logo's own transparency as the matte.

The entry

Add it to a clip's effects list. Entries run in the order you write them.

{
"type": "mask",
"src": "https://cdn.rendobar.com/compose/showcase/media/logo-mask.png",
"channel": "alpha"
}

Settings

NameAcceptsDefaultWhat it does
srcthe URL of a .png filerequiredURL of the mask image, png or jpg. It is stretched over the clip's picture, so draw it at the same shape.
channelluma, alphalumaWhat of the image decides: luma reads its brightness, for a black and white matte; alpha reads its transparency, for a png cut-out like a logo.

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/road.mp4"
},
start: 0,
effects: [
{
type: "mask",
src: "https://cdn.rendobar.com/compose/showcase/media/logo-mask.png",
channel: "alpha"
}
]
}
]
}
]
}
},
});
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/road.mp4"},"start":0,"effects":[{"type":"mask","src":"https://cdn.rendobar.com/compose/showcase/media/logo-mask.png","channel":"alpha"}]}]}]}}}'

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

Questions

What does the mask effect do in compose?

Show the clip only where an image says: white or opaque keeps it, black or clear cuts it away, grey fades it. A picture seen through a logo, or any shape you can draw. The footage seen through the wordmark: a logo reveal, with the logo's own transparency as the matte.

How do I add mask to a video with an API?

Send a compose job to the Rendobar API with this entry in the timeline: {"type":"mask","src":"https://cdn.rendobar.com/compose/showcase/media/logo-mask.png","channel":"alpha"}. Add it to a clip's effects list. Entries run in the order you write them. The request on this page is complete and renders as shown.

What are the default settings for mask?

Set src. The rest have defaults: channel luma.

Footage and sound