videocalling
Illustration of SFU (Unidad de Reenvío Selectivo) in video calling

SFU (Unidad de Reenvío Selectivo)

glossary.categories.architecture

Arquitectura de servidor que reenvía flujos entre participantes de forma eficiente

¿Qué es un SFU?

Una Unidad de Reenvío Selectivo (SFU) es una arquitectura de servidor de videoconferencia que recibe flujos de medios de cada participante y los reenvía selectivamente a otros participantes sin decodificar ni recodificar el contenido. A diferencia de un MCU que mezcla todos los flujos en una salida compuesta, un SFU simplemente actúa como un enrutador inteligente de paquetes.

Los SFUs son la arquitectura dominante para las videollamadas grupales modernas. Son utilizados por Google Meet, Zoom, Microsoft Teams, Discord y prácticamente todas las plataformas de videoconferencia a gran escala en 2025.

Cómo funciona un SFU

  1. Cada participante sube su flujo de audio/video una vez al servidor SFU
  2. El SFU decide qué flujos reenviar a cada participante
  3. Cada participante descarga los flujos de los demás participantes directamente del SFU
  4. El SFU NO decodifica ni recodifica los flujos, simplemente los reenvía

SFU vs. P2P vs. MCU

  • P2P: Cada par envía a todos los demás. Funciona para 2-4 personas pero no escala
  • SFU: Envías una vez al servidor, descargas N-1 flujos. Escala bien, baja latencia, bajo costo de servidor
  • MCU: El servidor mezcla todo en un flujo. Bajo ancho de banda del cliente pero alto costo del servidor y mayor latencia

Ventajas del SFU

  • Baja latencia: Sin decodificación/recodificación, mínimo retraso de procesamiento
  • Bajo costo de CPU del servidor: Solo reenvío de paquetes, sin transcodificación
  • Diseños flexibles: Cada participante puede elegir su propio diseño de vista
  • Buena escalabilidad: Maneja decenas a cientos de participantes eficientemente
  • Funciona con simulcast: Puede reenviar diferentes capas de calidad a diferentes receptores

Desventajas del SFU

  • Mayor ancho de banda del cliente: Cada participante descarga múltiples flujos individuales
  • Mayor procesamiento del cliente: Decodificar múltiples flujos requiere más CPU/batería
  • Sin E2EE estándar: El SFU puede acceder a los medios (aunque SFrame aborda esto)

SFUs populares de código abierto

  • mediasoup: SFU basado en Node.js/C++, popular para aplicaciones personalizadas
  • Janus: Servidor de propósito general de WebRTC con capacidades SFU
  • Pion: Pila WebRTC en Go, usado para SFUs de alto rendimiento
  • LiveKit: Plataforma SFU de código abierto con SDKs completos

Referencias