
Mesh, SFU and MCU are the three ways to connect people in a WebRTC video call. Mesh links every device to every other, an SFU server forwards each stream without decoding it, and an MCU server mixes all streams into one. Your room size mostly decides which you need.
TL;DR:
Updated Oct 19, 2026: replaced the line about low-latency live streaming "once it ships" with AIOZ Stream's documented live path and Low Latency Mode (Beta), added a topology diagram and a room-size table, and shortened the opening and sentences.
All three answer the same question: how do N people in a live call see and hear each other? Mesh sends media straight between your devices, an SFU puts a server in the middle that only routes packets, and an MCU puts a server in the middle that builds one combined video for everyone.
These topologies often get filed under "P2P video," which invites a mix-up, because they're about real-time, many-to-many calls. The content-delivery mesh in our CDN edge node guide is a different thing: cached copies of one broadcast fanning out to many viewers.

Full mesh is the simplest topology to reason about and the fastest to outgrow. Every participant opens a direct connection to every other participant, and no server touches the media. With N people, that's N x (N-1) streams, because each person both sends to and receives from everyone else.
A 4-person call means 4 x 3 = 12 streams, and your device runs 3 uploads and 3 downloads at once. At 1 Mbps per stream, that's 3 Mbps of upload plus the CPU to encode three outgoing copies. Fora Soft puts the ceiling plainly: mesh "holds up for 3-4 people on decent devices; past five it burns mobile batteries and saturates uplinks." Growth is quadratic, so doubling the room roughly quadruples the traffic. With no server, mesh costs you nothing to host, which makes it the right default for 1:1 and very small calls.
An SFU breaks the quadratic growth by putting a server in the middle that doesn't process video. You upload your stream once, and the SFU forwards that same encoded stream to every participant who needs it. Because the server routes packets instead of decoding them, its CPU cost stays low and latency stays close to a direct connection.
Most SFUs add simulcast: each sender uploads a few quality layers, and the server picks the layer that suits each receiver. That way, one meeting can serve a phone and a 4K monitor without server-side transcoding. Fora Soft's cost table puts a self-hosted SFU at about $0.0008 to $0.003 per participant-minute, which is why SFU is the default from small groups up to several hundred people.
An MCU takes the opposite approach and puts the heavy lifting on your server. It decodes every incoming stream, composites them into one picture (usually the familiar grid), re-encodes it and sends one stream to each viewer. That's continuous, expensive video processing for the length of your call. Fora Soft estimates roughly 4 to 10 times an SFU's compute per participant, or about $0.008 to $0.025 per participant-minute.
MCU survives for a narrower case, when the receiving device is your bottleneck. A low-bandwidth dial-in, a weak mobile link or a thin client that can't decode several streams gets exactly one ready-made picture. You pick it for those endpoints, not for quality or cost.
Peak participants per room decides more than any other factor, and Fora Soft's sizing table maps it like this:
| Peak participants per room | Baseline topology | Typical products |
|---|---|---|
| 1:1 | P2P with a TURN relay as fallback | Telehealth, support, sales demos |
| 3 to 8 | Small SFU, or mesh capped at 4 | Huddles, tutoring, standups |
| 9 to 50 | SFU with simulcast | Virtual classrooms, workshops |
| 50 to 200 | SFU plus active-speaker detection and server recording | Conferences, town halls, live commerce |
| 200 to 1,000 (broadcast) | SFU cascade, or MCU plus LL-HLS egress | Webinars, investor events, keynotes |
Past about a thousand viewers, your setup becomes a hybrid. An SFU handles the interactive stage, and LL-HLS or plain HLS over a CDN carries the stream to everyone else. WebRTC doesn't cache, so large audiences need HTTP delivery somewhere in the pipeline, as our HLS vs WebRTC guide explains. Our overview of how the main streaming protocols compare covers that hybrid alongside RTMP and SRT ingest.
SFU-style forwarding. Fora Soft notes that nearly every modern conferencing product, including Zoom, Teams and Meet, forwards streams selectively on the live path rather than mixing one canvas on the server. Zoom calls its media servers "multimedia routers," which describes the job. MCU-style mixing shows up mainly where an endpoint, such as a phone dial-in, can only handle one stream.
AIOZ Stream doesn't host video calls, so none of these three topologies describes our platform. The docs don't cover an SFU, MCU or WebRTC path. What we do cover is the audience side of the hybrid pattern above: you send a program feed over RTMP from OBS Studio or PRISM Live Studio, and viewers watch over HLS.
For interactive broadcasts such as Q&A, auctions or gaming, the dashboard player view has a Low Latency Mode (Beta) that reduces the delay between you and your audience. The docs don't publish a latency figure for it. You can also forward the same live stream to other platforms. The multicast reference documents this request (keys and URL are placeholders):
curl --location --request POST 'https://api.aiozstream.network/api/live_streams/multicast/stream_key' \
--header 'stream-public-key: your_public_key_here' \
--header 'stream-secret-key: your_secret_key_here' \
--header 'Content-Type: application/json' \
--data-raw '{ "multicast_urls": [ "rtmp://a.rtmp.youtube.com/live2/abcd-abcd-abcd-abcd" ] }'The DePIN network behind AIOZ Stream is also a different layer from mesh, SFU and MCU. It distributes cached copies of already-encoded video across operator-run nodes, while call topologies route live media between participants before anything is cached. Next step: set up a broadcast with the Create Livestream guide.
What's the difference between mesh, SFU and MCU in one line each?
Mesh connects every participant directly with no server, an SFU forwards streams without decoding them, and an MCU decodes, mixes and re-encodes all streams into one per viewer.
Why does mesh fall apart past 4 or 5 participants?
Total streams grow as N x (N-1), so upload bandwidth and CPU on each device climb quickly as the room grows, saturating uplinks and draining phone batteries.
Is MCU ever the better choice?
Yes, when your receiving device can't handle several incoming streams, such as a low-bandwidth dial-in or a thin client; otherwise quality and cost both favor an SFU.
Does AIOZ Stream use mesh, SFU or MCU?
No. AIOZ Stream's documented live path is RTMP in and HLS out, with a Low Latency Mode (Beta) for interactive broadcasts, and on-demand video plays over HLS or DASH.
Is this the same "P2P" as AIOZ's DePIN network?
No. The DePIN network distributes cached copies of encoded video across operator-run nodes, while mesh, SFU and MCU route live media between call participants.

Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.

Decentralized live streaming sends a real-time broadcast through independently run nodes instead of one company's servers. Here's how each stage of it works.

A video streaming glossary of 114 terms, from AAC and ABR to WebRTC and Widevine, each defined in plain English with sources and links to the deep posts.

Read the AIOZ Stream Statistics panel: bitrate in and out, FPS in and out and current viewers, plus the documented rules for each and what the docs leave out.

Embed an AIOZ Stream livestream with the Share button's iframe or send the Public Playback URL as a link. Covers API fields, public access limits and doc gaps.

Learn how a stream key differs from a streaming session on AIOZ Stream, what each one stores, and what to preconfigure before you go live. Docs-based guide.