Turn video uploads into videos ready to watch

Publish videos for web and mobile without running encoding servers. Start with a preset; add adaptive streaming, captions, and custom encoding settings as your product grows.

No credit card needed
source.mov
720 MB · 1920×1080
Encoding…
.mp4
H.264 · 1080×1920
.webm
VP9 · 1080×1920
.m3u8
HLS · Adaptive
Get a working result first

Upload a sample in the Template editor and inspect your encoded video before writing integration code.

Give viewers the right version

Create HLS or DASH streams so a compatible player can adapt video quality to the viewer’s connection.

Automate the work around video

Create playback versions and thumbnails, add your captions, and export the results from one upload.

Start small

Get your first MP4 in three steps

Try one conversion in your browser. Connect it to your app when you like the result.

  1. Save your first video Template

    Create a free account and paste this recipe into the Template editor. The H.264 preset supplies the encoding settings.

  2. Upload a sample and inspect the MP4

    Run the Template with a video in the editor’s testing area. Check the result before writing integration code.

  3. Reuse it in your app

    Send your Template ID with uploads through Uppy or an SDK. Add an export step to save finished videos to your storage.

One preset. Your first MP4.

{
  "steps": {
    ":original": {
      "robot": "/upload/handle"
    },
    "mp4": {
      "use": ":original",
      "robot": "/video/encode",
      "preset": "web/mp4/720p"
    }
  }
}

Test results expire after 24 hours. Add storage to keep them. Free plan limits apply.

Build on your first result

Go from one conversion to a publishing workflow

Combine encoding, your captions, and a watermark in one saved Template. This example takes uploads named video and captions; replace the watermark URL with your own logo.

Uploading video…
Podcast.mov
Assembly Instructions (JSON)
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"encode_mp4": {
"use": {
"steps": [
{
"name": ":original",
"fields": "video"
}
]
},
"robot": "/video/encode",
"preset": "web/mp4/720p"
},
"subtitled": {
"use": {
"steps": [
{
"name": "encode_mp4",
"as": "video"
},
{
"name": ":original",
"fields": "captions",
"as": "subtitles"
}
]
},
"robot": "/video/subtitle",
"subtitles_type": "burned"
},
"watermark": {
"use": "subtitled",
"robot": "/video/encode",
"preset": "web/mp4/720p",
"watermark_url": "https://example.com/logo.png",
"watermark_position": "top-right"
}
}
}

Simple to start. Room to grow.

Video encoding without the pain

Start with one conversion. When your requirements grow, keep the same API and add control over quality, publishing, storage, and processing.

Proven on tens of millions of videos

Turn real-world user uploads into high-quality video, backed by production experience and fine-grained encoding controls.

Increase viewership

Reach more viewers with adaptive playback and captions for watching without sound.

Increase conversions

Turn product videos and customer clips into web-ready content that helps shoppers decide.

Handle traffic spikes

Offload upload bursts to our infrastructure. Extra jobs queue when your processing slots are busy.

Publish videos sooner

Automate encoding, thumbnails, and exports from one upload. Spend less time on manual publishing.

Control processing costs

Choose a plan with included usage and pay for additional processing as needed.

Balance quality and file size

Start with a preset. Fine-tune resolution, bitrate, codecs, and FFmpeg settings.

Shorten long encoding jobs

Optional Turbo mode processes chunks in parallel using extra job slots. Up to 22x faster transcoding.

Webhooks and storage

Save processed videos and notify your app when they’re ready.

Secure uploads

Control upload access with expiring, server-generated signatures.

Block malicious videos

Add virus scanning to reject detected malware before further processing.

Resumable uploads up to 200 GB

Resume interrupted uploads with tus. Maximum size requires Enterprise.

Adaptive bitrate streaming

Create HLS and DASH streams that let your player adapt to each connection.

Asynchronous video processing

Process videos in the background. Get a webhook when the job finishes.

On-demand video processing

Encode HLS segments as viewers request them.

Bring your own storage

Send finished videos directly to your storage.

Try it with a video of your own

Start with a preset, upload a sample, and inspect your first result. Add the rest of your workflow when you need it.
Repeating the same video tasks
Run a saved workflow for each upload
Files too large for your use case
Choose your quality and file size balance
Viewers on changing connections
Prepare adaptive streams for your player
Different screens need different framing
Create versions for each screen
Maintaining encoding servers
Let Transloadit run the encoding
Choosing preview images by hand
Generate previews from each upload
GDPR
HIPAA
ISO 27001ISO27001
AES-256
SOC 2 Type II
No credit card needed

Frequently asked questions

How do I encode my first video?

Start with our MP4 preset, save a Template, and upload a sample in the browser editor. Once you like the result, reuse that Template through Uppy or an SDK. Follow the three-step quickstart.

Which video formats and encoding settings can I use?

Use presets for outputs such as MP4 and WebM, then adjust resolution, bitrate, and codecs. For finer control, use the supported FFmpeg parameters in the video encoding reference.

What is the maximum video file size I can upload?

File-size limits depend on your plan, with up to 200 GB per file on Enterprise. Uppy uses tus resumable uploads to recover from interrupted connections. Check the current plan limits.

Can I use adaptive streaming with my existing video player?

Yes, if your player supports HLS or MPEG-DASH. Transloadit creates the segments and playlists; your player switches quality as the connection changes. Store the files with the correct paths and CORS settings described in the adaptive streaming guide.

How do background and on-demand video processing differ?

Background processing creates your output files and can send a webhook when the job finishes. On-demand processing generates HLS segments as viewers request them.

Can I keep my videos in my own storage?

Yes. Export finished videos directly to Amazon S3, Cloudflare R2, Google Cloud Storage, Azure, and other supported providers. Add an export step for permanent storage; default result URLs are temporary. See how to save your results.

How can I control uploads and reject malicious files?

Enable Signature Authentication and generate expiring signatures on your server to control upload access. Add a virus scanning step to reject detected malware before further processing.

How much does video encoding cost?

Usage is measured in gigabytes. Most processing steps count their input and output sizes, with rates that vary by operation. Use the pricing page and usage estimator to estimate your workflow and choose a plan.