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

Smaller files. Formats every player reads.

Send a video by URL and get back the codec, size and quality you choose. One job can write several versions of the same upload.

Who uses it: Apps that store what users upload, course and media platforms, and anyone paying for bandwidth.

01

Compress and transcode

Re-encodes a video to H.264, H.265, VP9 or AV1 at the quality you set with CRF and a preset.

What it is for
Smaller files cost less to store and start playing sooner on slow connections.
Endpoint and fields
POST /v1/transcode videoaudio
In ffmpeg
-c:v libx264-crf-preset-movflags +faststart
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-small.mp4",
  "video": {
    "codec": "h264",
    "crf": 28,
    "encoder_preset": "veryfast"
  },
  "audio": {
    "codec": "aac",
    "bitrate": "128k"
  }
}'

Output. talk-small.mp4: H.264 video at CRF 28 with AAC audio at 128 kbit/s, its index at the front so it plays before the whole file has arrived.

02

WebM for browsers

Encodes VP9 video with Opus audio into a WebM file.

What it is for
VP9 keeps quality at lower bitrates than H.264, and every current browser plays it.
Endpoint and fields
POST /v1/transcode videoaudio
In ffmpeg
-c:v libvpx-vp9-c:a libopus
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.webm",
  "video": {
    "codec": "vp9",
    "crf": 32,
    "max_bitrate": "2M"
  },
  "audio": {
    "codec": "opus",
    "bitrate": "96k"
  }
}'

Output. talk.webm: VP9 video at CRF 32 capped at 2 Mbit/s, with Opus audio at 96 kbit/s.

03

Renditions: several sizes in one job

Writes an MP4 for each size you name with a preset, keeping the shape, from one read of the input.

What it is for
Serve 1080p to big screens and 720p to phones from one upload and one request.
Endpoint and fields
POST /v1/jobs outputs
In ffmpeg
splitscale-map
curl "$VIDEXO_API_URL/v1/jobs" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "inputs": {
    "talk": "https://example.com/talk.mp4"
  },
  "outputs": [
    {
      "name": "hd",
      "preset": "web-1080p",
      "filename": "talk-1080p.mp4"
    },
    {
      "name": "sd",
      "preset": "web-720p",
      "filename": "talk-720p.mp4"
    }
  ]
}'

Output. talk-1080p.mp4 and talk-720p.mp4: H.264 MP4s within 1920 by 1080 and 1280 by 720, never enlarged, from one read of the input.

04

Change the frame rate

Converts a video to a fixed frame rate, dropping or repeating frames as needed.

What it is for
Phones record at variable rates; editors, players and TV formats expect a constant one.
Endpoint and fields
POST /v1/transcode fpsaudio
In ffmpeg
fps
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-30fps.mp4",
  "fps": 30,
  "audio": {
    "codec": "copy"
  }
}'

Output. talk-30fps.mp4: the video at a constant 30 frames a second, the audio copied as it was.

Limits. Set by your plan.

  • Video codecs: H.264 (libx264), H.265 (libx265), VP8 and VP9 (libvpx, libvpx-vp9), AV1 (libaom-av1), MPEG-4, FFV1. VP9 and AV1 take several times longer to encode than H.264; check the time against your plan’s longest job.
  • Containers: MP4, MOV, MKV, WebM and MPEG-TS, one file per output. Adaptive streaming (HLS) Soon.
  • 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

Soon. Planned, not available yet.

  • Adaptive streaming (HLS) and a player Soon

    Playback that adapts to the connection, with an embeddable player.

  • AI upscale Soon

    Raise a video to 1080p, 1440p or 4K with AI that restores detail, with optional smoother motion.

Run your first job. Free, no card.