FFmpeg API pricing
No CPU sizes, no GB math — just credits.
A credit is a minute of our machines working — not a minute of your video. Files you get back cost 10 credits per GB, and downloads are free. Plans start at $0.
Free
$0
Kick the tires, run small jobs.
- 25 credits / mo ≈ 250 thumbnails or 2 transcodes
- 250 MB max input file
- 2 concurrent jobs
- Full API — raw args, recipes, presets, webhooks
Most projects
Build
$15 / month
Apps with video or audio in them.
- 400 credits / mo ≈ 30 ten-min 1080p transcodes or 200 podcast hours
- 2 GB max input file
- 10 concurrent jobs
- Email support
Scale
$49 / month
High volume, running around the clock.
- 1,500 credits / mo ≈ 120 transcodes or 90 hrs of edit proxies
- 6 GB max input file
- 50 concurrent jobs
- Priority email support
Pay yearly and get 2 months free. Run out of credits and jobs simply stop — you never get a bill you weren't expecting. Jobs run in parallel on every plan, so speed isn't something we charge extra for.
Estimate
Not sure which plan? Answer three questions.
A rough estimate, with our assumptions spelled out below.
≈ $0.025 per minute of video
What we assumed: a good-quality 1080p re-encode runs about 2.5× faster than the video plays (720p about 4.5×, 4K about 0.8×), at typical file sizes. Repackaging and pulling out audio are quick. The edit-proxy numbers aren't guesses — they come from a real 78-minute job that used about 21 credits.
Fair questions
Common questions.
- What exactly is a credit?
- A minute of our machines working, counted by the second — plus 10 credits for every GB the job hands back to you.
- So a 10-minute video costs 10 credits?
- No — a credit is a minute of our work, not a minute of your video. Encoding runs faster than the video plays, so a 10-minute 1080p clip takes about 4 minutes of processing. Add roughly 8 credits for the finished file and you're at about 12 all in. A thumbnail off that same video is about 0.1.
- My job finished in 40 seconds — why did it use 2 credits?
- Because we split it across several machines at once. You're paying for the work, not for how long you waited — and we don't charge extra for the speed.
- What happens when a job fails?
- You don't pay for it. Jobs that come back failed or rejected cost nothing — a rejected job never started, and a failed one is on us.
- What happens when I run out of credits?
- Jobs stop rather than costing you money. New ones come back with LIMIT_EXCEEDED — a normal error your code can handle — until the month resets or you upgrade.
- How big can a file be?
- 250 MB on Free, 2 GB on Build, 6 GB on Scale, per file. Size only decides what you can send — it never changes the price, since we charge for the work and what comes back. Need more? Email sales@xora.sh.
- Will I know what a job cost?
- Always. Every finished job returns its own cost — cost.totalUsd plus a step-by-step breakdown — in the API response and the webhook.
- Why not bill by file size or by video minutes like other FFmpeg APIs?
- Because neither one measures the work. A thumbnail from a 2 GB file reads a few megabytes, but a size meter bills all 2 GB and a minutes meter bills the full length of the video. Credits bill the machine time the job actually used, plus the files it hands back.
How billing works
Three rules, and that's all of them.
1 credit = 1 minute of machine time
Not a minute of your video — the two aren't the same. Encoding runs faster than the video plays, so a 10-minute clip takes about 4 minutes of work, not 10. We count by the second.
files out = 10 credits / GB
Charged once, when the job finishes . That's close to what moving those bytes costs us. Files you send in are free.
downloads = free
Grab a finished file once or a thousand times — same price either way. And jobs that fail or get rejected cost nothing.
Worked example
One thumbnail, three meters.
One JPG thumbnail from a 2 GB, 20-minute 1080p video. A size meter bills the whole file, a minutes meter bills the whole video, and credits bill the work.
| Billing meter | What it counts | Cost |
|---|---|---|
| Processed GB $0.10 per GB · Rendi's lowest published Pro rate (rendi.dev) | input + output size ≈ 2.0 GB | ≈ $0.20 |
| Input video minutes $49.99 per 7,000 tokens · FFmpeg Micro Pro plan, 1 token per 10 s of input (ffmpeg-micro.com) | 20 minutes of input = 120 tokens | ≈ $0.86 |
| Xora credits about $0.038 per credit on Build |
~0.1 credits of machine time
with stageInput: false, only the bytes around the frame are read
| ≈ $0.004 |
Other rates are published prices, checked on 13 October 2026. The point is the meter, not the vendor: when a job is light and the file is large, size and minutes meters charge for work that never happens. When a job is heavy and the file is small, a size meter can cost less.
Real numbers
What things cost.
What actual jobs use, and how many you'd get in a month on Build ($15).
| Job | Credits | On Build ($15/mo) |
|---|---|---|
| Thumbnail from a 2 GB video we read just the part we need — the full 2 GB never moves | ~0.1 all processing | ≈ 4,000 / mo |
| Podcast hour → MP3 re-encoding the audio; keep it as AAC instead and you get ~3× as many | ~2 1.3 processing + 0.6 output | ≈ 200 / mo |
| Make a 500 MB file web-ready just rearranging it so it starts playing instantly — no re-encoding | ~5 0.2 processing + 5 output | ≈ 75 / mo |
| 10-min 1080p transcode 1.5 GB in → 0.8 GB out, done in ~40 s | ~12 4.3 processing + 8 output | ≈ 30 / mo |
| 78-min 1080p → edit proxy measured a real job we ran — finished in about 2 minutes | ~21 16 processing + 5 output | ≈ 19 / mo |
| 10-min 4K → 1080p compress | ~22 13 processing + 9 output | ≈ 18 / mo |
The "measured" row is a real job we ran. The rest are close estimates — and you never have to take our word for it, since every job reports its own cost.
Start on the free tier.
25 credits a month and the full API, no credit card. Move up a plan whenever you outgrow it.