Realtime-streamingsystemen (WebRTC + live gegevens) · Les

SFU- versus MCU-architecturen

Begrijp de verschillen tussen Selective Forwarding Units (SFU) en Multipoint Control Units (MCU) voor WebRTC-gesprekken met meerdere deelnemers.

Les 1 van 412 stappen

SFU- versus MCU-architecturen is een gratis Realtime-streamingsystemen (WebRTC + live gegevens)-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Realtime-streamingsystemen (WebRTC + live gegevens). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Realtime-streamingsystemen (WebRTC + live gegevens) bevat in totaal 4 lessen.

Gesprekken met meerdere deelnemers schalen

Stelt u zich een videogesprek met veel deelnemers voor. Hoe kunnen al hun video- en audiostromen efficiënt worden verbonden? Directe peer-to-peerverbindingen, die gebruikelijk zijn bij WebRTC voor twee personen, worden complex en inefficiënt voor grotere groepen.

In deze les onderzoekt u twee belangrijke architecturen aan de serverzijde voor het schalen van gesprekken met meerdere deelnemers: MCU en SFU.

Kennismaken met de MCU

MCU staat voor Multipoint Control Unit. U kunt een MCU zien als een centrale 'mixer' voor de mediastromen van alle deelnemers.

In een MCU-architectuur verzendt elke deelnemer zijn afzonderlijke audio- en videostroom naar een centrale server.

Hoe de MCU stromen verwerkt

De MCU-server ontvangt alle afzonderlijke stromen, decodeert ze, mengt ze tot één samengestelde stroom (bijvoorbeeld een rasterindeling van video's) en codeert deze ene stroom vervolgens opnieuw.

Ten slotte verzendt de MCU deze *enkele, gemengde stroom* terug naar *alle* deelnemers.

MCU: voordelen voor de client

Een groot voordeel van het MCU-model is dat elke client slechts één stroom hoeft te verzenden (de eigen stroom) en één stroom hoeft te ontvangen (de gemengde stroom van de server).

Dit vermindert de bandbreedte- en verwerkingsvereisten van de client aanzienlijk, waardoor het geschikt is voor gebruikers met een zwakkere internetverbinding of minder krachtige apparaten.

MCU: afwegingen voor de server

Hoewel MCU's gunstig zijn voor clients, leggen ze een zware belasting op de server. De server moet veel stromen in realtime decoderen, mengen en opnieuw coderen.

  • Intensief voor de server: Hoog CPU- en geheugengebruik.
  • Inleveren op kwaliteit: Opnieuw coderen kan vertraging veroorzaken en de kwaliteit van afzonderlijke stromen verminderen.
  • Beperkte aanpassing: Clients ontvangen een vaste indeling die door de server wordt bepaald.

Kennismaken met de SFU

SFU staat voor Selective Forwarding Unit. In tegenstelling tot een MCU mengt of codeert een SFU mediastromen niet opnieuw.

Een SFU werkt als een slimme router die afzonderlijke stromen van één deelnemer doorstuurt naar alle andere deelnemers die deze moeten ontvangen.

Hoe de SFU stromen routeert

In een SFU-opstelling verzendt elke deelnemer zijn stroom naar de SFU-server. De SFU stuurt de stroom van elke deelnemer vervolgens *afzonderlijk* door naar alle andere deelnemers.

De SFU kan selectief bepalen welke stromen worden doorgestuurd en in welke kwaliteit (bijvoorbeeld een lagere resolutie verzenden naar clients met weinig bandbreedte).

SFU: flexibiliteit aan de clientzijde

Met een SFU ontvangt elke client meerdere afzonderlijke stromen (één van elke andere deelnemer). De client decodeert en rendert deze stromen vervolgens lokaal.

Dit biedt meer flexibiliteit bij de indeling en de afzonderlijke bediening van stromen aan de clientzijde. Een client kan er bijvoorbeeld voor kiezen om slechts enkele hoofdsprekers weer te geven.

Voer dit voorbeeld uit:

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: de juiste balans vinden

SFU's zijn zeer efficiënt voor de server omdat ze niet decoderen of opnieuw coderen, maar alleen doorsturen. Daardoor zijn ze beter schaalbaar voor veel deelnemers.

Clients hebben echter meer bandbreedte nodig (om meerdere stromen te ontvangen) en meer verwerkingskracht (om deze allemaal lokaal te decoderen en te renderen).

  • Efficiënt voor de server: Laag CPU- en geheugengebruik per stroom.
  • Intensief voor de client: Hogere bandbreedte- en CPU-behoefte voor clients.
  • Flexibel: Clients kunnen de indeling en de zichtbaarheid van afzonderlijke stromen aanpassen.

De juiste architectuur kiezen

De keuze tussen MCU en SFU hangt af van de specifieke behoeften van uw toepassing:

  • MCU: Het beste voor clients met weinig bandbreedte, vaste indelingen en situaties waarin serverkosten voor verwerking aanvaardbaar zijn.
  • SFU: Ideaal voor hoge kwaliteit, flexibele indelingen en situaties waarin schalen naar veel deelnemers essentieel is, op voorwaarde dat clients over voldoende middelen beschikken.

Quiz: SFU versus MCU

Test uw begrip van MCU- en SFU-architecturen.

Samenvatting: MCU versus SFU

We hebben twee belangrijke architecturen voor WebRTC-gesprekken met meerdere deelnemers onderzocht:

  • MCU (Multipoint Control Unit): De server mengt de stromen en verzendt één samengestelde stroom naar elke client. Goed voor clients met beperkte middelen, maar intensief voor de server.
  • SFU (Selective Forwarding Unit): De server stuurt afzonderlijke stromen door naar clients. Biedt betere kwaliteit en meer flexibiliteit voor clients, maar vereist meer bandbreedte en verwerkingskracht aan de clientzijde.

De keuze tussen beide hangt af van de specifieke vereisten van uw toepassing en de beperkingen van uw gebruikers op het gebied van schaalbaarheid en kwaliteit.

Gratis beginnen

Leer Realtime-streamingsystemen (WebRTC + live gegevens) met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “SFU- versus MCU-architecturen” gratis?

Ja — de volledige tekst van “SFU- versus MCU-architecturen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Realtime-streamingsystemen (WebRTC + live gegevens) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Realtime-streamingsystemen (WebRTC + live gegevens) bevat in totaal 4 lessen.

Wat leer ik in “SFU- versus MCU-architecturen”?

Begrijp de verschillen tussen Selective Forwarding Units (SFU) en Multipoint Control Units (MCU) voor WebRTC-gesprekken met meerdere deelnemers. Je oefent met Realtime-streamingsystemen (WebRTC + live gegevens) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Realtime-streamingsystemen (WebRTC + live gegevens) te beginnen?

Ervaring vooraf is niet nodig. Realtime-streamingsystemen (WebRTC + live gegevens) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “SFU- versus MCU-architecturen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Realtime-streamingsystemen (WebRTC + live gegevens)?

Ja. Elke les over Realtime-streamingsystemen (WebRTC + live gegevens) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. SFU- versus MCU-architecturen
  2. Signalingservers load balancen
  3. Gedistribueerde STUN/TURN-services
  4. SFU's koppelen voor geografische schaal
← Terug naar Realtime-streamingsystemen (WebRTC + live gegevens)