Skip to content
live Now generally available

Your video. Your bucket. Your rules.

One request in, HLS and DASH out — into your own bucket, or hosted by us. Every option we sell is checked by a real encode.

No card needed · 30-second test encodes free · pay per output minute after

create-job.ts sending
const job = await client.jobs.create({
  inputUrl: "s3://bucket/input.mp4",
  outputOriginId: "ori_x9y8z7w6v5",
  outputs: [{
    type: "hls",
    video: [
      { codec: "h264", resolution: "1080p" },
      { codec: "h264", resolution: "720p" },
      { codec: "h264", resolution: "480p" },
    ],
  }],
});
$ POST /v1/jobs

How it works

One request. Three stages.

stage 01 · probe

Point to your source

Pass an S3, GCS, R2, or public URL. We fetch the video and probe it automatically.

stage 02 · encode

Pick your outputs

Choose codecs, resolutions, and format — MP4, HLS, DASH, or adaptive. Or use a preset.

stage 03 · deliver

Get your files

Encoded files are written to your storage. Webhook fires when the job completes.

No card needed · 30-second test encodes free · pay per output minute after

Two products. One encoder.

Encode into your own storage, or let us host, deliver and play it for you.

Transcoding API

Bring your own storage. Pay per output minute. Product page →

  • H.264, HEVC, VP9, AV1

    All major codecs. From widely compatible H.264 to royalty-free AV1. Up to 8K, HDR10 and HLG.

  • HLS & DASH packaging

    Output to HLS, DASH, or both from shared CMAF segments. Multi-bitrate playlists, fMP4 or TS. No extra cost.

  • A failed job bills €0

    One base rate and a few multipliers you can see, printed in full on the pricing page. Audio tracks, packaging and thumbnails are included. Per-app spend limits stop a runaway pipeline before it becomes an invoice.

  • Three tiers, stated in VMAF

    Economy targets VMAF 85–90, Standard 93–95, Premium 97–99. The tier is a price multiplier you choose, not a guess we make for you.

  • Webhooks

    Get notified on job progress, completion, and failures. Build reactive pipelines without polling.

  • Your bucket, your paths

    Encode straight into your own S3, GCS, R2 or HTTP origin. A four-level path template decides the filename before the job starts, so the object your pipeline writes is the object your app already expects. Or hand us a public URL and skip the setup.

Video Hosting

Upload, transcode, host, and stream via global CDN. How hosting works →

  • Auto or custom ladder

    Upload with zero config and get a CMAF ABR ladder from your app defaults. Or pick a system preset. Or define your own — up to 20 variants, full control.

  • Multi-codec manifests

    Same ladder, parallel codecs — AV1 1080/720/480 alongside H.264 1080/720/480 in one manifest. Modern players pick AV1; older devices fall back to H.264 at the same resolution.

  • Global delivery & player

    Edge-cached streaming with signed, time-limited URLs, domain CORS whitelist, and three visibility tiers. Vidstack-based player, embed by URL or iframe — works everywhere.

  • Managed end-to-end

    Enable hosting, configure defaults, create presets, and track per-video storage and egress costs — all from the dashboard. Multipart uploads up to 5 GB included.

Video Hosting

One platform. Two front doors.

The same hosted video, however your team works — drag it into the dashboard, or make three API calls. Either way: transcoded, on the CDN, ready to embed.

dashboard — Videos door 01 · no code

Drop a video — we take it from here

big-buck-bunny.mp4 276 MB
no file yet waiting for file
upload.ts door 02 · three calls
// From file to embeddable player — three calls
const { video, uploadUrl } = await client.videos.createUpload({
  appId: "app_k1l2m3n4o5",
  filename: "product-launch.mp4",
  contentType: "video/mp4",
  sizeBytes: BigInt(file.size),
});

await fetch(uploadUrl, { method: "PUT", body: file });

await client.videos.completeUpload({ id: video.id });
// → video.embedUrl, video.playbackUrl (HLS)
→ video.embedUrl · same player, same CDN

One player, one CDN, one metered bill.

Explore Video Hosting →

Run it from your agent

See the MCP server

Connect the hosted MCP server to Claude, Claude Code or Cursor and your agent gets 15 real tools — not a chat about video, an actual encode. Every call is scoped to one app and audited; there are no delete tools and nothing to install.

your agent what you ask

Transcode and host this video and give me a link: https://www.transcodely.com/videos/bbb-30s.mp4

Done — it is hosted and ready: https://play.transcodely.com/v/vid_a1b2c3d4e5f6g7

→ no SDK, no glue code

Simple, usage-based pricing

Full pricing and calculator

Pay per output minute. Per GB stored. Per GB delivered. No monthly fees.

Transcoding API

€0.005 / output minute, starting from

  • H.264 / 480p €0.005/min
  • H.264 / 1080p €0.010/min
  • HEVC / 1080p €0.010/min
  • VP9 / 1080p €0.015/min
  • AV1 / 1080p €0.040/min
  • HEVC / 4K €0.040/min
  • AV1 / 4K €0.160/min

30fps, standard quality. Pair with your own storage (S3, GCS, R2).

Video Hosting

Metered, three line items

  • Encoding €0.010/ output min

    One-time per video

  • Storage €0.020/ GB·month

    Source + all renditions, prorated daily

  • CDN delivery €0.010/ GB egress

    Global edge, metered hourly

Uploads, CDN, player, and analytics included. See how →

What you can hold us to

Outputs land where you put them.

Read from and write to your own S3, GCS, R2 or HTTP origin. Output path templates resolve the same way every time. A collision between two templates you wrote is rejected at create; one between our defaults is auto-fixed. Never a silent overwrite. Up to 20 variants in a ladder you designed.

Output paths

Only the people you choose.

Signed, time-limited playback URLs, three visibility tiers, and Widevine, FairPlay and PlayReady with your own keys or ours. CENC or CBCS. The part everyone underestimates, already built.

DRM & signed playback

161 of 168 cases, gaps listed.

Every codec, container, ladder and DRM path is re-run as a real job on a real worker, with the output downloaded and inspected. Features we accept but cannot yet produce are on the same page, in their own section.

See what’s checked

Ready to press play?

An account takes a minute. Your first encodes are free 30-second tests; after that it is one rate per output minute.

No card needed · 30-second test encodes free · pay per output minute after

Or email admin@transcodely.com — we answer within 24 hours.