Managed video APIs vs self-hosting: the break-even you can compute yourself
Every managed video API is priced per participant-minute, and every self-hosted SFU is priced in server time and attention. Those are different units, which is why the comparison usually ends in a feeling rather than a number.
It does not have to. The arithmetic is two multiplications and one division, and the only number you cannot look up is the one on your own dashboard.
The only formula you need
monthly managed cost = participant-minutes per month x rate per participant-minute
break-even minutes = one-time kit price / rate per participant-minute
months to break even = one-time kit price / monthly managed cost
Managed vendors publish rates per 1,000 participant-minutes, so divide by 1,000 first. Replace the rate below with the one actually quoted to you; these are worked examples, not quotes from any vendor.
Break-even against a $199 kit
| Rate per participant-minute | Participant-minutes to break even | Equivalent participant-hours |
|---|---|---|
| $0.004 | 49,750 | ~829 h |
| $0.006 | 33,167 | ~553 h |
| $0.010 | 19,900 | ~332 h |
| $0.020 | 9,950 | ~166 h |
Read the last column as "how much video you have to carry before the kit has paid for itself once". After that, the marginal cost of another hour is bandwidth, not a per-minute fee.
The same numbers with a real usage figure
Suppose your product carries 200 participant-hours of video a month. That is 12,000 participant-minutes.
| Rate per participant-minute | Monthly managed cost | Months to break even on $199 |
|---|---|---|
| $0.004 | $48 | ~4.1 months |
| $0.010 | $120 | ~1.7 months |
| $0.020 | $240 | ~0.8 months |
Even in the cheapest case in the table, the kit pays for itself inside a quarter, and it does not stop paying after that. That is the entire argument for a one-time price, and it is why per-minute vendors are careful to describe self-hosting as "operational burden" rather than as a line on a spreadsheet.
The cost that is easy to forget: egress
Self-hosting removes the per-minute fee and adds a bandwidth bill, so be honest about it.
A 720p stream runs about 1.5 Mbit/s. One publisher to five viewers is roughly 9 Mbit/s leaving your server, which is about 3.4 GB of egress per hour.
- A VPS with a 1 TB monthly allowance covers around 290 hours of that shape.
- A VPS with a 20 TB allowance covers far more than most early products will ever use.
- Ingress is normally free; egress is the only line that grows.
Put against $48-$240 a month in per-minute fees, a $10-$40 VPS with a generous transfer allowance is not a close call for this usage shape. It stops being obvious when you are carrying thousands of concurrent streams, which is also the point at which you should be reading LiveKit's scaling documentation rather than this page.
The costs that are real and are not money
Self-hosting is cheaper in dollars and more expensive in weekends. What actually shows up:
- A relay you have to run. Carrier NAT and corporate firewalls mean a share of your users need TURN, and a TURN server that is running but misconfigured looks exactly like a working one until someone on a mobile network connects. This is the single most common way a self-hosted deployment fails, and it has its own guide.
- Certificate renewal and reverse proxies. Idle signaling sockets behind a misconfigured proxy get reaped, and the symptom is "video stops after two minutes", which points at the wrong layer. Here is that failure.
- Frozen tiles. A tile can report
connectedwhile the picture is a still frame, and no ICE state will tell you. The recovery ladder is the fix. - Diagnosis. When a customer says "it is broken", you need six numbers from getStats, not a vendor's status page.
None of that is a reason to self-host. It is a reason to know what you are buying when you do: a working reference for that whole list is the actual product here, not the RTP forwarding, which is the easy part.
The comparison nobody puts in a table
Managed vendors compare against "engineering time", and they are right to. A senior developer-day costs somewhere between $400 and $800 in most markets. Getting a WebRTC media path from a laptop demo to something a customer can use is not one day of that work.
So the real question is not "is self-hosting cheaper". It is: do I want the engineering time back, or the dollars back? If it is the dollars, self-host and buy the reference. If it is the time, take the managed API and pay the per-minute rate forever.
What to do next
- Open your managed vendor's dashboard and read the participant-minutes for your busiest month. That single number decides this page.
- Multiply it by the rate you actually pay. That is your monthly managed cost.
- Divide the one-time price by it. That is your break-even in months.
The source package and pricing is $199, $499 or $999, one-time. If step three comes out above a year, this is probably not your problem yet, and the guides are still free.
Low-Latency Kit is the source package behind the guides on this site: a Go signaling server and Pion SFU, a browser publisher and viewer, the reconnect chain and a diagnostics panel, in one binary with no Redis and no database. Source package and pricing ->