The serverless ffmpeg handbook: every runtime, one API
Every serverless runtime shuts ffmpeg out for its own reason, and the fix differs by platform. This is the index: what each host blocks, and the single call that routes around it. Start from your platform, or jump straight to the operation you need.
By platform
Why the native ffmpeg binary can't run on each serverless runtime — and the one-call fix. Pick yours for the full guide.
| Platform | Native ffmpeg | What blocks it |
|---|---|---|
| Run ffmpeg on Vercel | No | 250MB unzipped Node function bundle cap — ffmpeg plus codecs don't fit |
| Run ffmpeg on Supabase | No | Deno runtime has no child_process/subprocess API, so you can't exec the ffmpeg binary |
| Run ffmpeg on Netlify | No | ffmpeg binary + libs exceed Netlify's 50MB-zipped Lambda deploy cap |
| Run ffmpeg on Cloudflare Workers | No | V8 isolate: no native binaries — can't install or exec the ffmpeg binary |
| Run ffmpeg on AWS Lambda | Barely | Runs only via a self-packaged ffmpeg layer kept under the 250MB unzipped limit |
| Run ffmpeg on Deno Deploy | No | V8 isolates have no subprocess API and no FFI, so the ffmpeg binary can't launch |
Watermark, trim, audio & thumbnails
Each is a single endpoint — POST a URL, get a hosted result back.
Add a logo or text watermark to video and images with one HTTP call. No ffmpeg, no serverless timeouts. Get a hosted result URL back. First key's on us.
Read the guideExtract audio APIExtract audio from any video and get a hosted MP3 with its duration — one HTTPS call, no ffmpeg in your stack. Start on the free tier.
Read the guideTrim video APIA hosted trim video API. POST a source URL with start and end, get back a frame-accurate MP4 clip — no binary in your bundle, zero infra. Free to try.
Read the guideTrim audio APITrim any audio file to a start/end window, get back a hosted MP3. One POST call, nothing to deploy and no server to babysit. Grab a free key.
Read the guideVideo thumbnail APIGenerate video thumbnails and poster frames with a single HTTP call. Grab a frame at any timestamp as a hosted image — no ffmpeg binary to ship.
Read the guideShip it with one API call
Grab a free key and make your first call in under five minutes.
