Real-Time Streaming Systems (WebRTC + Live Data) · 강의

SFU와 MCU 아키텍처 비교

다자간 WebRTC 통화에서 Selective Forwarding Unit(SFU)과 Multipoint Control Unit(MCU)의 차이점을 이해합니다.

레슨 1/412개 단계

SFU와 MCU 아키텍처 비교은(는) CoddyKit의 무료 Real-Time Streaming Systems (WebRTC + Live Data) 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Real-Time Streaming Systems (WebRTC + Live Data) 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Real-Time Streaming Systems (WebRTC + Live Data) 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

Scaling Multi-Party Calls

Imagine a video call with many people. How do all their video and audio streams connect efficiently? Direct peer-to-peer connections, common in 1-on-1 WebRTC, become complex and inefficient for larger groups.

This lesson explores two main server-side architectures for scaling multi-party calls: MCU and SFU.

Introducing the MCU

MCU stands for Multipoint Control Unit. Think of an MCU as a central 'mixer' for all participants' media streams.

In an MCU architecture, every participant sends their individual audio and video stream to a central server.

How MCU Processes Streams

The MCU server receives all individual streams, decodes them, mixes them together into a single composite stream (e.g., a grid layout of videos), and then re-encodes this single stream.

Finally, the MCU sends this *single, mixed stream* back to *all* participants.

MCU: Client Benefits

A big advantage of the MCU model is that each client only needs to send one stream (their own) and receive one stream (the mixed stream from the server).

This significantly reduces the client's bandwidth and processing requirements, making it suitable for users with weaker internet connections or less powerful devices.

MCU: Server Trade-offs

While beneficial for clients, MCUs place a heavy load on the server. The server has to decode, mix, and re-encode many streams in real-time.

  • Server Intensive: High CPU and memory usage.
  • Quality Compromise: Re-encoding can introduce latency and reduce individual stream quality.
  • Limited Customization: Clients receive a fixed layout determined by the server.

Introducing the SFU

SFU stands for Selective Forwarding Unit. Unlike an MCU, an SFU does not mix or re-encode media streams.

An SFU acts as a smart router, forwarding individual streams from one participant to all others who need to receive them.

How SFU Routes Streams

In an SFU setup, each participant sends their stream to the SFU server. The SFU then forwards each participant's stream *individually* to all other participants.

The SFU can selectively choose which streams to forward and at what quality (e.g., sending a lower resolution to clients with poor bandwidth).

SFU: Client-Side Flexibility

With an SFU, each client receives multiple individual streams (one from each other participant). The client then decodes and renders these streams locally.

This allows for greater flexibility in layout and individual stream control on the client side. For example, a client can choose to display only a few main speakers.

Try running this example:

function simulateSFUClient(numberOfParticipants) {
  console.log("--- SFU Client Simulation ---");
  console.log("Receiving individual streams from server:");
  for (let i = 1; i <= numberOfParticipants; i++) {
    console.log(`  - Stream ${i} (from Participant ${i})`);
    // In a real WebRTC app, this would involve
    // creating a <video> element for each stream.
  }
  console.log("Client renders all streams locally.");
  console.log("----------------------------");
}

simulateSFUClient(3); // Simulate a call with 3 other participants

SFU: Balancing Act

SFUs are highly efficient for the server as they don't decode/re-encode, just forward. This makes them more scalable for many participants.

However, clients need more bandwidth (to receive multiple streams) and more processing power (to decode and render them all locally).

  • Server Efficient: Low CPU/memory per stream.
  • Client Intensive: Higher bandwidth and CPU for clients.
  • Flexible: Clients can customize layout and individual stream visibility.

Choosing the Right Architecture

The choice between MCU and SFU depends on your application's specific needs:

  • MCU: Best for low-bandwidth clients, fixed layouts, and when server cost for processing is acceptable.
  • SFU: Ideal for high-quality, flexible layouts, and when scaling to many participants is critical, assuming clients have adequate resources.

SFU vs. MCU Quiz

Test your understanding of MCU and SFU architectures.

Recap: MCU vs. SFU

We've explored two key architectures for multi-party WebRTC calls:

  • MCU (Multipoint Control Unit): Server mixes streams, sends one composite stream to each client. Good for low-resource clients, but server-intensive.
  • SFU (Selective Forwarding Unit): Server forwards individual streams to clients. Offers better quality and client flexibility, but requires more client bandwidth and processing.

Choosing between them depends on your specific application requirements and user constraints for scalability and quality.

무료로 시작

AI 튜터와 함께 Real-Time Streaming Systems (WebRTC + Live Data)을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
12
레슨
48

자주 묻는 질문

“SFU와 MCU 아키텍처 비교” 강의는 무료인가요?

네 — “SFU와 MCU 아키텍처 비교” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Real-Time Streaming Systems (WebRTC + Live Data) 강의 전체를 잠금 해제할 수 있습니다. Real-Time Streaming Systems (WebRTC + Live Data) 강의에는 총 4개의 강의가 포함되어 있습니다.

“SFU와 MCU 아키텍처 비교”에서 뭘 배우나요?

다자간 WebRTC 통화에서 Selective Forwarding Unit(SFU)과 Multipoint Control Unit(MCU)의 차이점을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Real-Time Streaming Systems (WebRTC + Live Data)을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Real-Time Streaming Systems (WebRTC + Live Data)을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Real-Time Streaming Systems (WebRTC + Live Data)은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“SFU와 MCU 아키텍처 비교” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Real-Time Streaming Systems (WebRTC + Live Data) 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Real-Time Streaming Systems (WebRTC + Live Data) 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. SFU와 MCU 아키텍처 비교
  2. 시그널링 서버 부하 분산
  3. 분산 STUN/TURN 서비스
  4. 지리적 확장을 위한 SFU 캐스케이딩
← Real-Time Streaming Systems (WebRTC + Live Data)(으)로 돌아가기