Skip to main content
The caption.burn job burns subtitles permanently into a video. Provide an SRT, VTT, or ASS file as the subtitles input, or omit it to auto-transcribe the audio. Style the text with web-hex colors, an outline, a background box, and a position.
Accepts: video · Type: caption.burn

Request

import { createClient, outputUrl } from "@rendobar/sdk";

const client = createClient({ apiKey: "rb_YOUR_KEY" });

const job = await client.jobs.create({
  type: "caption.burn",
  inputs: {
    source: "https://cdn.rendobar.com/assets/examples/sample.mp4",
    subtitles: "https://cdn.rendobar.com/assets/examples/sample.srt",
  },
  params: { fontFamily: "Inter", fontSize: 48, boxEnabled: true },
});

const result = await client.jobs.wait(job.id);
console.log(outputUrl(result));
Omit subtitles to auto-transcribe. The spoken language is detected by default (language: "auto"). Pass an ISO-639-1 code to skip detection.

Inputs

source
string
required
URL of the source video to caption.
subtitles
string
URL of an SRT, VTT, or ASS subtitle file. A provided ASS file is burned as-is, preserving its own styling. Omit to auto-transcribe the audio.

Parameters

language
enum
default:"auto"
Spoken language for the auto-transcribe path, as an ISO-639-1 code (e.g. en, es, ja) or auto to detect. English uses a faster model. Everything else routes to multilingual transcription. Ignored when a subtitle file is provided.
fontFamily
string
default:"Inter"
Font family. Must resolve to a font available to the renderer.
fontSize
integer
default:"48"
Font size in output pixels. Range 8–400.
fontColor
string
default:"#FFFFFF"
Text fill color as web hex (#RRGGBB or #AARRGGBB, alpha first).
bold
boolean
default:"true"
Render the text bold.
italic
boolean
default:"false"
Render the text italic.
outlineColor
string
default:"#000000"
Outline (stroke) color as web hex.
outlineWidth
number
default:"2"
Outline thickness in pixels. Range 0–20.
shadow
number
default:"1"
Drop-shadow depth in pixels. Range 0–20. 0 disables the shadow.
boxEnabled
boolean
default:"false"
Draw a filled background box behind the text (the accessibility “subtitle bar”).
boxColor
string
default:"#000000"
Background box color as web hex. Applies when boxEnabled is true.
boxOpacity
number
default:"0.6"
Background box opacity, 0 (transparent) to 1 (opaque).
position
enum
default:"bottom"
Vertical placement. One of bottom, center, top.
alignment
enum
default:"center"
Horizontal alignment. One of left, center, right.
marginV
integer
default:"60"
Vertical margin in pixels. Range 0–2000.
marginH
integer
default:"40"
Horizontal margin in pixels. Range 0–2000. Also bounds the line-wrap width.
maxCharsPerLine
integer
Maximum characters per line on the auto-transcribe path. Range 10–80.
Like every job, this returns the standard response. See Job output for the shape and how to read the result. For animated word-level captions instead, see captions.animate.