Batch Video Processing Service — Pricing Proposal

Stack: Very Good FFmpeg (per-GB engine) + S3 storage ($14/mo, 2 TB) · Compiled Sep 2026
$0.087–0.50
per-GB engine cost (blended by volume)
$0.25–0.42
engine cost per typical 60s 1080p job
−4%
GM of naive pass-through at agency scale
~30%
GM of credit-bundle at realistic utilization

1. Your cost basis

The engine (Very Good FFmpeg) bills per GB processed = input bytes + output bytes, exactly the model Vidrotation already uses (built/verified in the repo: estimate.js, DEFAULT_PRICE_PER_GB = 0.50, output sized at a typical 1080p CRF-23 bitrate). Engine rate cards (public, 2026):

Processing volumeEngine rate ($/GB)
0–10 GB / month$0.50 / GB
10–100 GB / month$0.10 / GB
100+ GB / month$0.08 / GB

Blended engine cost (what you actually pay as your aggregate volume grows across all users):

Your total monthly volumeBlended $/GBMonthly engine bill
60 GB$0.167/GB$10
200 GB$0.110/GB$22
800 GB$0.087/GB$70
2,000 GB$0.083/GB$166
S3 storage: $14/mo fixed for 2 TB

That is $0.007/GB/month — basically a rounding error versus engine compute. Amortized fairly, across ~20 paying users it's ≈$0.70–0.90 per user/month. It behaves as a fixed platform cost (hosting your batch outputs and source pools), not a per-unit driver. Treat it as a covered line item inside each plan, not as a metered input.

2. Critical finding: naive pass-through is unprofitable at scale

If you resell the engine's per-GB cost 1:1 as credits, the agency tier loses money.
Example (computed): sell 800 GB of credits for $79/mo; your engine bill for those 800 GB is already $70/mo. Add the S3 share ($11.85) and you're −$2.85/mo (−4%) before support or failed-job waste. A flat pass-through works for low volume only (60 GB: $14 plan → $10 engine + $2.10 S3 = $1.90, ~14%).

Two levers fix it — and you should use both:

3. Unit economics per operation

Design point: a typical 60-second 1080p clip ≈ 500 MB input. Engine runs input+output GB for each op. Verified engine costs at the $0.50/GB entry tier:

OperationInput+outputEngine costSuggested sellGross margin
Convert (mp4 → webm/mov)0.830 GB$0.415$0.99$0.58 (58%)
Resize 1080p → 720p0.720 GB$0.360$0.79$0.43 (54%)
Crop / reframe0.720 GB$0.360$0.79$0.43 (54%)
Trim (60s → 20s)0.665 GB$0.333$0.79$0.46 (58%)
Compress0.620 GB$0.310$0.69$0.38 (55%)
Thumbnail extraction0.500 GB$0.250$0.50$0.25 (50%)
The thumbnail trap: a thumbnail has almost no output, but the engine still reads the whole 500 MB input — so it genuinely costs ~$0.25 even though it feels "free." Do not price thumbnails at $0. Make them cheap ($0.50) or free when bundled with any paid op in the same batch run, but never standalone-free.

Markup logic: ~2× on engine cost, sized so that even a worst-case job (thumbnails) holds ~50% GM. That buffer absorbs failed-job retries, low-balance retries, and your $14/mo S3 before it ever erodes margin.

4. Pricing scenarios

Scenario A — Pure per-GB credit (naive; shown for contrast)

Tier$/moCredits (GB)OverageGM @100% useGM @60% use
Solo$1460$0.50/GB$1.90 (14%)$4.30 (31%)
Pro$29200$0.30/GB$2.65 (9%)$9.05 (31%)
Agency$79800$0.15/GB−$2.85 (−4%)$22.75 (29%)

Only viable if you budget on 60% or lower utilization and lean on overage income. Fragile — one heavy user on Agency erases the tier.

Scenario B — Per-operation flat fees (user-friendly, + S3 as fixed platform cost)

Charge per operation at the §3 prices (convert $0.99, resize/crop/trim $0.79, compress $0.69, thumbnail $0.50, thumbnail free with any same-batch paid op). GM ≈ 50–58% per op. S3 + your platform cost are recovered by a small platform/export fee per batch cover (source pooling + output hosting):

PlanData pool / storageExport/hostingNotes
Free1 GBwatermarked 720p, 30-day holdAcquisition; no S3 cost exposure
Starter$9/mo25 GB, 60-day holdCovers S3 share ≈ $0.70 + margin
Pro$24/mo100 GB, permanentThe core offering
Team / API$59/mo250 GB + API keyBatch + automation path (n8n/Make)

Best for discovery and simplicity — the buyer knows the price before they click. Predictable revenue per job; no need to guess utilization. Recommended direction for the "batch interface with trim/crop/thumbnail/convert/resize/export" you described.

Scenario C — Recommended hybrid: operation credits in a monthly bundle

Marry A and B: the plan includes a pool of operation credits (1 credit = 1 standard op, thumbnails ~0.4 credit), priced from your blended engine cost, with markup and overage. Storage/S3 lives in the plan.

Tier$/moOps creditsStorageOverageEst. GM@60% use
Free$05 ops1 GB—acquisition
Starter$1440 ops25 GB$0.30/op~30–35%
Pro$29120 ops100 GB$0.25/op~30%
Team$59300 ops250 GB$0.20/op~30%
Agency / Scale$119750 ops1 TB$0.15/op~28–30%

Because engine cost per op drops with your aggregate volume ($0.167→$0.087/GB), your blended cost per bundle falls as you grow while the sell price holds — margin widens at scale, the exact opposite of Scenario A.

Why this works for your specific stack
You already have the per-GB estimate built (repo estimate.js, pre-render cost shown to the user after upload). Reuse it: show the exact operation cost before the user confirms. That "cost before you click" transparency is precisely what the market's #1 complaint (opaque pricing) rewards.
Sizing sanity vs competitors
Template/render APIs charge $0.02–0.30 per finished minute regardless of size. Your per-operation model at ~$0.50–1.00 per short clip is comparable for short-form, but far cheaper for a 30s thumbnail pass and fully predictable. Do not price against CapCut's free tier — you sell automation + storage + batch, not single edits.
Recommended launch pricing (case you're leaning toward):
Free 5 ops · Starter $14/mo (40 ops + 25 GB) · Pro $29/mo (120 ops + 100 GB) · Team $59/mo (300 ops + 250 GB) · Agency $119/mo (750 ops + 1 TB). Operations at convert $0.99 · resize/crop/trim $0.79 · compress $0.69 · thumbnail $0.50 (free with a same-batch paid op). Price operations, not gigabytes; keep S3 as a covered fixed cost; surface live per-job estimates before render; and let your blended engine cost fall as volume grows so margin expands with scale.