Skip to content

Preview Videxo runs jobs, accepts uploads up to 100 MB, serves output downloads and sends signed webhooks. Sign in with email, GitHub or a passkey. Payments are not connected yet, so credit packs and paid plans cannot be bought. Read the quickstart

Your logo on every frame. Or a second video in the corner.

Overlay images, videos, text and subtitles at the position, size and time you choose. A PNG with transparency keeps its edges.

Who uses it: Products that export video for their customers, stock and preview libraries, course and tutorial makers.

01

Watermark or logo

Places an image, such as a PNG logo with transparency, over every frame.

What it is for
Brand every video your product exports, or mark previews as previews.
Endpoint and fields
POST /v1/transcode extra_inputsoverlays
In ffmpeg
overlayscale
curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/talk.mp4",
  "filename": "talk-branded.mp4",
  "extra_inputs": {
    "logo": "https://example.com/logo.png"
  },
  "overlays": [
    {
      "input": "logo",
      "position": "bottom-right",
      "margin": 24,
      "width": 160
    }
  ]
}'

Output. talk-branded.mp4: the logo, 160 pixels wide, 24 pixels in from the bottom right corner.

02

Picture in picture

Shrinks a second video and places it in a corner of the first.

What it is for
A camera over a screen recording, a reaction over the clip it reacts to.
Endpoint and fields
POST /v1/transcode extra_inputsoverlaysaudio
In ffmpeg
overlayscale
curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/screen.mp4",
  "filename": "lesson.mp4",
  "extra_inputs": {
    "camera": "https://example.com/camera.mp4"
  },
  "overlays": [
    {
      "input": "camera",
      "position": "top-right",
      "margin": 32,
      "width": 480
    }
  ],
  "audio": {
    "input": "camera"
  }
}'

Output. lesson.mp4: the screen recording with the camera 480 pixels wide in the top right, 32 pixels in, and the camera’s sound.

03

Text and titles

Draws titles, captions and labels into the picture in a font from a curated set, with a box, outline or shadow, timed and faded.

What it is for
Lower thirds, chapter titles and calls to action without opening an editor.
Endpoint and fields
POST /v1/transcode text
In ffmpeg
drawtext
curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/talk.mp4",
  "filename": "talk-titled.mp4",
  "text": [
    {
      "text": "Launch day",
      "font": "inter-bold",
      "size": 64,
      "position": "bottom",
      "box": {
        "opacity": 0.6,
        "padding": 16
      },
      "start": 1,
      "end": 6,
      "fade": {
        "in": 0.5,
        "out": 0.5
      }
    }
  ]
}'

Output. talk-titled.mp4: “Launch day” in Inter Bold at the bottom on a dark box, from second 1 to second 6, fading in and out.

04

Burned-in subtitles

Draws the captions of an SRT or WebVTT file into the picture at their cue times, in a font from the curated set.

What it is for
Captions that play everywhere, muted autoplay feeds included, with no player support needed.
Endpoint and fields
POST /v1/transcode extra_inputssubtitles
In ffmpeg
subtitles
curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/talk.mp4",
  "extra_inputs": {
    "captions": "https://example.com/talk.srt"
  },
  "filename": "talk-captioned.mp4",
  "subtitles": {
    "input": "captions",
    "font": "inter-bold",
    "size": 44
  }
}'

Output. talk-captioned.mp4: the captions of talk.srt in Inter Bold, white with a thin black outline, centred at the bottom, each at its time.

Limits. Set by your plan.

  • Overlays are images or videos given as inputs. Text and subtitles use the fonts on the Fonts page of the docs.
  • Subtitles come from an SRT or WebVTT input of at most 1 MB; the tags and styles in the file are removed, so every cue is plain text.
  • Inputs are public http or https URLs, or completed private uploads up to 100 MB and your plan’s input limit. Outputs have signed download links. A job names up to 16 input and 16 output files.
Limits per plan
What one job may use on each plan
LimitPay as you goStarterProScale
Longest job10 min10 min30 min60 min
Inputs per job1 GB1 GB5 GB10 GB
Outputs per job1 GB1 GB5 GB8 GB
Outputs expire after7 days7 days30 days30 days
  • Pay as you go

    Longest job
    10 min
    Inputs per job
    1 GB
    Outputs per job
    1 GB
    Outputs expire after
    7 days
  • Starter

    Longest job
    10 min
    Inputs per job
    1 GB
    Outputs per job
    1 GB
    Outputs expire after
    7 days
  • Pro

    Longest job
    30 min
    Inputs per job
    5 GB
    Outputs per job
    5 GB
    Outputs expire after
    30 days
  • Scale

    Longest job
    60 min
    Inputs per job
    10 GB
    Outputs per job
    8 GB
    Outputs expire after
    30 days

Run your first job. Free, no card.