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.




Upload a sample in the Template editor and inspect your encoded video before writing integration code.
Create HLS or DASH streams so a compatible player can adapt video quality to the viewer’s connection.
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.
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.
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.
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.
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.
- 1080p5 Mbps720p2.6 Mbps480p1.1 Mbpsindex.m3u8
Adapt playback to each connection
Prepare HLS and MPEG-DASH streams so a compatible player can switch between quality levels.
/video/adaptive - ProRes · 1.4 GB97% smaller
Make large uploads easier to watch
Convert and resize videos for web and mobile, with control over quality and file size.
/video/encode - 3 clips · one timeline
Turn separate clips into one video
Combine clips into a complete lesson, interview, or highlight reel.
/video/concat - 1080p720p480pRequested 720p · encoded once
Skip encoding variants nobody watches
On-demand HLS creates video segments as viewers request them.
/video/ondemand - — How were you handling uploads before?captions.srt
Make videos easier to follow
Add your SRT or VTT captions as selectable subtitles or burn them into the video.
/video/subtitle - Picture + sound · one file
Bring pictures and sound together
Add a soundtrack to a still image or combine an audio track with video.
/video/merge
0:04
0:12
0:20Help viewers choose what to watch
Extract thumbnails for your video library, search results, and previews.
/video/thumbs
poster.jpgGive each video a publishable cover
Generate poster artwork for your published videos in the same workflow.
/video/artwork
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.
{"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
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.
