# Encode, stream, and caption video through one API

Turn every customer upload into streams, thumbnails, and captions for any screen, at any volume.

[Try it free](/c/signup/)[Request a demo](/request-demo.md)

* 1080p5.0 Mb/s720p2.8 Mb/s480p1.2 Mb/s360p0.6 Mb/s

  Adaptive streaming

  <span aria-hidden="true" id="video-encoding-stream-description"></span>

  Streams in 1080p, 720p, 480p, and 360p
* 0:040:060:090:11

  Thumbnails

  <span aria-hidden="true" id="video-encoding-thumbnails-description"></span>

  Four stills taken from the video
* Welcome back to the show\.Today we’re talking about video.Let’s get straight into it.

  Captions
* Watermark
* MOV · HEVCMP4 · H.264

  Transcoding

  <span aria-hidden="true" id="video-encoding-transcode-description"></span>

  Convert MOV to MP4
* MOV · 4K · 170 MBMP4 · 1080p · 38 MB78% smaller

  Compression

  <span aria-hidden="true" id="video-encoding-compress-description"></span>

  Reduce 170 MB to 38 MB

Customer story

<span aria-hidden="true" id="vu-customer-story-heading"></span>

## From client upload to an LED wall in up to 8K

Vū Technologies replaces green screens with LED walls. Transloadit turns their clients’ footage, in whatever codec it arrives, into video the walls can play.

[Read the case study](/casestudies/2026/07/vu-technologies.md)

> “Transloadit stood apart from the other options because of its 8K encoding.”

Vū TechnologiesVirtual production studios

Build momentum with video

## Grow your audience. Get to market faster.

Give your engineers time to build. We handle the video infrastructure.

* ### Increase viewership

  Reach more viewers with major codecs, adaptive playback, and captions.
* ### Publish videos sooner

  Automate encoding, moderation, thumbnails, and exports in one upload.
* ### Increase conversions

  Help shoppers decide with web-ready product videos and customer clips.
* ### Resumable uploads up to 5 TB by arrangement

  Let users resume video uploads even on slow, unreliable connections.
* ### Handle traffic spikes

  Buy extra priority slots in advance. We queue jobs when your slots are busy.
* ### Volume pricing for video at scale

  Compare volume rates: AWS MediaConvert, Cloudinary, Uploadcare.

Start small

<span aria-hidden="true" id="video-quickstart-heading"></span>

## Convert your first video to MP4 in three steps

Try one conversion in your browser before you write any code.\
Like the result? Connect the same Template to your app and run it on every upload.

[Create your video Template](/c/templates/new/)

1. 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. 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. 3

   ### Reuse it in your app

   Send your Template ID with uploads through Uppy or [one of our SDKs](/docs/sdks.md). Add an export step to save finished videos to your storage.

Test results expire after 24 hours. [Add storage](/docs/getting-started/saving-conversion-results.md) to keep them. [Free plan limits](/pricing.md) apply.

template.json

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

```

Robots

## Make every upload work for your audience

Help viewers watch, browse, and understand your videos. Pick the processing steps you need — we call them Robots — and combine them in one reusable workflow.

[Explore all video processing options](/docs/robots.md#video-encoding)

* [1080p5 Mbps720p2.6 Mbps480p1.1 Mbpsindex.m3u8Cut video bandwidth costsCreate HLS and DASH streams so your player can serve lower bitrates when needed./video/adaptive](/docs/robots/video-adaptive.md)
* [MOV · HEVC · 96 MB68% smallerMake large uploads easier to watchConvert and resize videos for web and mobile, with control over quality and file size./video/encode](/docs/robots/video-encode.md)
* [3 clips · one timelineTurn separate clips into one videoCombine clips into a complete lesson, interview, or highlight reel./video/concat](/docs/robots/video-concat.md)
* [1080p720p480pRequested 720p · encoded onceSkip encoding variants nobody watchesOn-demand HLS creates video segments as viewers request them./video/ondemand](/docs/robots/video-ondemand.md)
* [— How were you handling uploads before?captions.srtMake videos easier to followAdd your SRT or VTT captions as selectable subtitles or burn them into the video./video/subtitle](/docs/robots/video-subtitle.md)
* [Picture + sound · one fileBring pictures and sound togetherAdd a soundtrack to a still image or combine an audio track with video./video/merge](/docs/robots/video-merge.md)
* [0:040:120:20Help viewers choose what to watchExtract thumbnails for your video library, search results, and previews./video/thumbs](/docs/robots/video-thumbs.md)
* [poster.jpgGive each video a publishable coverGenerate poster artwork for your published videos in the same workflow./video/artwork](/docs/robots/video-artwork.md)

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

Upload

Encode

Subtitles

Watermark

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"

}
```

}

}

Your workflow. Your controls.

## Video encoding without the pain

Stop maintaining manual encoding pipelines. Automate processing and delivery with one API.

* ### Take control of FFmpeg

  Go beyond presets with custom FFmpeg parameters. Control codecs, resolution, bitrate, filters, and container settings.
* ### Shorten long encoding jobs

  Optional Turbo mode processes chunks in parallel using extra job slots. Up to 22x faster transcoding.
* ### Webhooks and real-time updates

  Use per-file callbacks and webhook requests when processing finishes.
* ### Secure uploads and delivery

  Control upload access with expiring, server-generated signatures. Protect video delivery with signed URLs.
* ### Block malicious videos

  Add virus scanning to reject malware-infected videos before further processing.
* ### Control processing costs

  Choose included usage and pay for overages. Set a soft bill limit for alerts or a hard limit to stop processing.
* ### Minimize streaming costs

  Encode HLS segments only when viewers request them. Save on unused renditions.
* ### Bring your own storage

  Send finished videos directly to Amazon S3, Cloudflare R2, Google Cloud Storage, Azure, and more.
* ### Multiple outputs. One API call.

  Cut integration complexity. Encode, create thumbnails and streams, and export with one API call.

Try Transloadit

## 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

GDPR

HIPAA

HIPAA

ISO 27001ISO27001

ISO 27001

AES-256

AES-256

SOC 2 Type II

SOC 2 Type II

[Encode your first video](/c/signup/)

[Encode your first video](/c/signup/)

No credit card needed · Cancel anytime

## Frequently asked questions

How do I encode my first video?

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

Which video formats and encoding settings can I use?

Working with MP4, MOV, AVI, MKV, or WebM? You’re in good company — we support these popular video formats and many more. Choose a preset or take control with custom FFmpeg parameters for codecs, resolution, bitrate, filters, and containers. Explore the [supported formats](/docs/supported-formats.md) and [encoding options](/docs/robots/video-encode.md).

What is the maximum video file size I can upload?

Need to upload videos as large as 5 TB? [Talk to us about an Enterprise arrangement⁠](mailto:sales@transloadit.com) for your workflow. Standard limits depend on your plan. Resumable uploads let users continue after a connection drops instead of starting over — especially helpful on slow or unreliable networks. See the [current plan limits](/docs/faq/max-filesize.md).

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](/docs/robots/video-adaptive.md).

How do background and on-demand video processing differ?

Background processing prepares your videos ahead of playback. Use the [HTTP request Robot (alpha)](/docs/robots/http-request.md) for per-file callbacks. Set `payload` to `metadata` to identify each file. Your endpoint must return 2xx before the request timeout, or the step fails. Assembly Notifications report when processing finishes. [On-demand processing](/docs/robots/video-ondemand.md) encodes HLS segments as viewers request them, avoiding encoding work for videos nobody watches.

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](/docs/getting-started/saving-conversion-results.md).

How can I control uploads and reject malicious files?

Control uploads with expiring, server-generated [signatures](/docs/api/authentication.md) and protect Smart CDN delivery with signed URLs. Add a [virus scanning step](/docs/robots/file-virusscan.md) to reject malware-infected videos before further processing.

How much does video encoding cost?

Usage is measured in gigabytes, with rates that vary by operation. Set a soft bill limit to receive alerts or a hard limit to stop processing. For larger workloads, ask about volume pricing and purchasing extra priority slots in advance. Use the [pricing page and usage estimator](/pricing.md) to compare costs for your workflow.
