Video Hosting

Upload. Transcode.
Host. Play.

Three API calls to go from raw file to globally-distributed adaptive streaming. Auto ladder by default, full preset and codec control when you need it. Manage it all from the dashboard.

play.transcodely.com

Player activates with your first hosted video

Everything you need to host video

Upload once, get HLS/DASH manifests, thumbnails, embed codes, and per-video analytics.

Auto or custom ladder

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

Multi-codec manifests

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

HLS, DASH & MP4

ABR streaming in HLS or DASH from shared CMAF segments, or progressive MP4 for direct downloads. Every delivery format available per preset.

CDN Delivery

Global edge delivery with signed URLs and per-visibility access control (public, unlisted, private). Domain CORS whitelist for embed protection.

Embed anywhere

Copy a URL or iframe snippet — ready for any site, CMS, or mobile app. Vidstack-based player with adaptive HLS, poster frames, and analytics.

Dashboard managed

Enable hosting, configure auto-profile defaults, create presets, and pick one per upload — all from the dashboard. Per-video and per-month cost analytics built in.

Customization

Zero-config by default.
Deep control when you need it.

Every upload picks one of three modes. All three land in the same dashboard, produce the same playback URLs, and bill the same way.

Recommended

Auto ladder

Upload with no preset and we build a CMAF ABR ladder from your app's auto-profile defaults. Default: HLS + H.264 up to 1080p at Standard quality — plays everywhere.

  • Format: HLS, DASH, or MP4
  • Codec: H.264, HEVC, VP9, or AV1
  • Max resolution: 480p → 2160p
  • Quality: Economy / Standard / Premium
Built-in

System preset

Curated templates for common workflows — mobile-first, broadcast quality, archival, HDR, and more. Pick one at upload time, or duplicate it as a starting point for a custom preset.

  • Read-only, always available
  • One-click duplicate to customize
  • Tuned for specific use cases
Your own

Custom preset

Save your exact encoding recipe once, reuse it on every upload. Full ABR ladder control — up to 20 variants, each with its own resolution, bitrate, CRF, framerate, and quality override.

  • Up to 20 variants per ladder
  • CRF, CBR, or VBR rate control
  • Content-type tuning, HDR, DRM
  • Multi-codec manifests supported

One manifest, two codec ladders

Ship the same ladder in parallel codecs — e.g., AV1 at 1080p, 720p, and 480p alongside H.264 at 1080p, 720p, and 480p, all inside a single HLS or DASH manifest. Modern players pick AV1 and cut your egress bill; older devices fall back to H.264 automatically, at the same resolution tier. Configure the mix in a custom preset.

Built on the Transcodely transcoding API

Prefer to bring your own storage?

Video hosting is an opt-in layer on top of our transcoding API. If you already have S3, GCS, or Azure set up, skip hosting and use the transcoding API directly — same encoder, same presets, same pricing per output minute.

Developer Experience

Three calls. That's it.

Get a presigned upload URL, PUT the file, and tell us you're done. We handle the transcoding, packaging, CDN distribution, and playback infrastructure.

upload.ts 3 calls
// 1. Get a presigned upload URL
const { video, uploadUrl } = await client.createUpload({
  filename: "demo.mp4",
  contentType: "video/mp4",
  sizeBytes: BigInt(file.size),
});

// 2. Upload the file directly to storage
await fetch(uploadUrl, {
  method: "PUT",
  body: file,
  headers: { "Content-Type": file.type },
});

// 3. Tell the API you're done — transcoding starts
const { video: ready } = await client.completeUpload({
  id: video.id,
});

// That's it. Watch for status updates, or just come back later.
console.log(ready.playbackUrl); // https://cdn.../vid_abc.../master.m3u8

Transparent pricing

No monthly fees. Pay only for what you use. Encoding, storage, and delivery — all metered.

480p · 720p · 1080p · H264 · 30fps · Standard quality · 3 renditions · encoding base: €0.0225/source min
Higher framerates (60/120fps), Premium quality, HDR, and DRM apply the same transcoding multipliers — see full pricing for the interactive breakdown.
Encoding (3 renditions × 60 min) €1.35
Storage (3.8 GB) €0.0765
Delivery (21.5 GB) €0.2146
Estimated monthly total €1.641
5 GB stored = €0.10/mo
≈ 1.3 hour of content on the default ladder
100 GB delivered = €1.00
≈ 46 hours 1080p playback, ≈ 546 views of a 5-min video

Rates: €0.010/output min encoding (per rendition, Standard quality), €0.020/GB·month storage, €0.010/GB egress. See full pricing.

Frequently asked questions

What happens when I upload a video?
You pick one of three modes: (1) Auto — uses your app's default profile (format, codec, max resolution, quality tier) to build a CMAF ABR ladder; (2) System preset — ready-made templates for common workflows; (3) Custom preset — your own preset, saved once in the dashboard and reusable across uploads. After upload, we transcode, package, and publish the playback URLs.
What does the default ladder look like?
The app's auto-profile defaults drive it — by default, HLS (CMAF segments) in H.264 up to 1080p at the Standard quality tier, which plays back on every modern browser, iOS, Android, and smart TV. You can change any of those defaults per app from the dashboard.
Can I mix codecs in one manifest?
Yes. HLS and DASH (CMAF) support multi-codec variant streams with player fallback — e.g., the same 1080p/720p/480p ladder in both AV1 and H.264 inside a single manifest. Capable players pick AV1 and save egress; older devices fall back to the H.264 variant at the same resolution. Configure the codec mix in a preset.
What video formats can I upload?
Any common container and codec — MP4, MOV, MKV, WebM, AVI, with H.264, H.265, VP9, AV1, ProRes, and more. Transcodely probes the input automatically and generates your chosen output renditions.
What's the upload size limit?
Up to 5 GB per file via resumable multipart uploads. Uploads chunk automatically, support cancel and resume, and surface real-time progress in the dashboard or SDK.
Does my video get an HLS stream automatically?
Yes. Every ready video exposes an HLS playback URL (m3u8) with the full ABR ladder your preset defined. DASH and progressive MP4 are available too, generated from the same CMAF segments.
How much of the ladder can I customize?
A preset can hold up to 20 variants, each with its own resolution, bitrate, CRF, framerate, and quality tier override. You control encoder mode (CRF / CBR / VBR), content-type tuning, HDR/DRM, segment duration, and GOP alignment. Save the preset once and reuse it on every upload.
Where do I manage all this?
The Transcodely dashboard. Enable hosting on an app, set its auto-profile defaults, create or duplicate presets, pick a preset at upload time, and view the resulting renditions table with codec, resolution, bitrate, and size for each. System presets are duplicatable into your own custom ones.
Can I host private videos?
Yes. Each video has one of three visibility modes — public, unlisted, or private. Private videos require signed CDN tokens for playback, and you can whitelist the domains allowed to embed your player via CORS rules.
How do signed URLs work?
Private and unlisted videos are served through short-lived signed URLs that the API issues on demand. Tokens include expiry and are validated at the CDN edge — nobody can share or scrape your content without a fresh signature.
What CDN powers delivery?
Transcodely uses a global CDN with edge caching across multiple continents. You'll see your CDN hostname (e.g. transcodely-app-xxx.b-cdn.net) in the app config once hosting is enabled.
How is hosting billed?
Three line items: €0.010/min for encoding (one-time per video), €0.020/GB/month for storage (metered daily), and €0.010/GB for egress (metered hourly). No monthly minimums.
Is this separate from the transcoding API?
Hosting is built on the same transcoding engine — you can use the transcoding API alone with your own S3/GCS/Azure storage, or enable hosting on an app to have Transcodely handle upload, storage, CDN, and playback end-to-end.

Ready to host your first video?

Sign up, get your API key, and upload a video in under 5 minutes. No credit card required to start.