videocalling
Illustration of SFU (Selective Forwarding Unit) in video calling

SFU (Selective Forwarding Unit)

glossary.categories.architecture

Arquitetura de servidor que encaminha fluxos entre participantes de forma eficiente

O que é um SFU?

Uma Selective Forwarding Unit (SFU) é uma arquitetura de servidor para videoconferência que recebe fluxos de mídia de todos os participantes e os encaminha seletivamente para os outros participantes — sem decodificar, mixar ou transcodificar a mídia. Pense no SFU como um sistema de correio inteligente: ele recebe seus pacotes e os distribui para as caixas de correio corretas, mas nunca abre os pacotes.

O SFU é a arquitetura dominante para videoconferência moderna. Zoom, Google Meet, Microsoft Teams, Discord e praticamente todas as grandes plataformas de vídeo usam SFUs como base de sua infraestrutura. É o equilíbrio ideal entre custo de servidor, qualidade e escalabilidade.

Como o SFU Funciona

  1. Cada participante envia seu fluxo de mídia para o SFU (um upload)
  2. O SFU recebe todos os fluxos de todos os participantes
  3. O SFU encaminha seletivamente os fluxos apropriados para cada participante
  4. Cada participante baixa fluxos de outros participantes do SFU

Vantagens do SFU

  • Escalabilidade: Pode lidar com centenas de participantes por servidor
  • Baixa latência: Sem decodificação/recodificação, adiciona ~50ms vs ~200ms do MCU
  • Sem perda de qualidade: Mídia é encaminhada, não transcodificada
  • Flexibilidade do cliente: Cada participante pode escolher qual qualidade receber
  • Custo moderado: Muito mais barato que MCU por participante

SFU com Simulcast

Simulcast é o companheiro perfeito do SFU. Com simulcast, cada participante envia múltiplas versões do mesmo vídeo (por exemplo, 720p, 360p, 180p). O SFU então escolhe qual versão encaminhar para cada receptor com base em sua largura de banda e tamanho de exibição.

Implementações Populares de SFU

  • mediasoup: SFU de código aberto em C++/Node.js, usado por muitas plataformas comerciais
  • Janus: Gateway WebRTC de código aberto com funcionalidade SFU
  • Pion: Implementação WebRTC em Go, popular para SFUs personalizados
  • LiveKit: Plataforma de comunicação em tempo real de código aberto
  • Cloudflare Calls: SFU serverless na borda global da Cloudflare

Referências