≡En resumen
- WebRTC resuelve la llamada entre dos; para grupos hace falta elegir arquitectura.
- Mesh no necesita servidor de medios, pero cada participante envía su vídeo a todos: se satura a partir de pocas personas.
- SFU es el estándar de facto: cada uno envía un flujo y el servidor lo reenvía a los demás sin decodificarlo.
- MCU mezcla todo en un único vídeo: menos carga para el cliente, mucha más CPU en el servidor.
- Jitsi, mediasoup, LiveKit y Janus son SFU de código abierto; la alternativa es una plataforma de vídeo como servicio.
01 ¿Qué es una videoconferencia con WebRTC?
La diferencia con una llamada de video chat uno a uno es el escalado: con dos personas, WebRTC conecta los dispositivos directamente; con diez, alguien tiene que repartir el vídeo. Muchas herramientas conocidas, como Jitsi Meet o Google Meet en el navegador, usan WebRTC por dentro con esta lógica.
02 Mesh, SFU o MCU: las tres arquitecturas
| Mesh (malla) | SFU | MCU | |
|---|---|---|---|
| Cómo funciona | Cada participante se conecta con todos los demás | Cada uno envía un flujo al servidor, que lo reenvía sin decodificar | El servidor decodifica todos los flujos, los mezcla y envía uno solo |
| Nombre en el RFC 7667 | Point to Multipoint Using Mesh | Selective Forwarding Middlebox | Media-Mixing Mixer |
| Subida de cada cliente | Un flujo por cada otro participante | Un flujo (o varias calidades con simulcast) | Un flujo |
| Bajada de cada cliente | Un flujo por participante | Un flujo por participante visible | Un único flujo mezclado |
| Carga del servidor | Solo señalización (y TURN) | Media: reenvío de paquetes | Muy alta: decodificar, componer y codificar |
| Tamaño razonable | Llamadas muy pequeñas | De pocas a cientos de personas por sala | Salas medianas o integración con equipos antiguos |
| Cifrado de extremo a extremo | Nativo | Posible con SFrame o insertable streams | No, el servidor necesita ver el vídeo |
En una reunión de 6 personas en malla, cada portátil codifica y envía su vídeo 5 veces y recibe 5 vídeos. Con 720p eso ya satura muchas conexiones domésticas de subida y la CPU de un portátil medio. Con un SFU, ese mismo portátil envía un único flujo, o tres calidades con simulcast, y el servidor hace el reparto.
03 Cómo escalar una videoconferencia WebRTC
Simulcast
El emisor envía el mismo vídeo en varias calidades y el SFU entrega a cada receptor la que puede asumir. Está normalizado en el RFC 8853 (enero de 2021).
SVC
Un único flujo codificado en capas (con VP9 o AV1) del que el servidor descarta las que sobran para cada receptor.
Last-N y orador activo
Solo se reenvía el vídeo de quienes hablan o están en pantalla; el resto, en miniatura o pausado.
Cascada de SFU
Varios servidores en distintas regiones conectados entre sí, para que cada participante se una al más cercano.
TURN bien dimensionado
Los usuarios en redes corporativas pasarán por TURN: su tráfico cuenta como el del SFU.
Salto a streaming
Para cientos o miles de espectadores pasivos, se emite desde el SFU a una CDN (HLS o WHEP) y solo los ponentes usan WebRTC.
04 Servidores WebRTC de código abierto: Jitsi, mediasoup, LiveKit y Janus
| Proyecto | Licencia | Lenguaje principal | Qué es |
|---|---|---|---|
| Jitsi Videobridge | Apache 2.0 | Kotlin | SFU del ecosistema Jitsi; con Jitsi Meet tienes una aplicación de reuniones completa y autoalojable |
| mediasoup | ISC | C++ (API para Node.js y Rust) | Librería SFU de bajo nivel para construir tu propia plataforma a medida |
| LiveKit | Apache 2.0 | Go | Plataforma SFU con SDK para web y móvil, orientada también a agentes de IA de voz y vídeo; tiene versión en la nube |
| Janus | GPLv3 | C | Servidor WebRTC de propósito general con plugins (SFU, pasarela SIP, streaming), mantenido por Meetecho |
No hay un ganador absoluto. Jitsi te da una aplicación terminada que puedes personalizar; mediasoup, el máximo control a cambio de más desarrollo; LiveKit, SDK muy completos y una opción gestionada; Janus, versatilidad si necesitas pasarelas con telefonía. Revisa siempre la licencia: la GPLv3 impone condiciones si distribuyes software derivado. Elegir e integrar bien el servidor es trabajo de desarrollo de aplicaciones web, no de configuración.
05 Construir o integrar: opciones para tu producto
| Opción | Esfuerzo | Control | Cuándo encaja |
|---|---|---|---|
| Enlazar una herramienta existente | Mínimo | Nulo | Reuniones internas o puntuales |
| Incrustar una app abierta (por ejemplo Jitsi Meet) | Bajo | Medio | Necesitas vídeo dentro de tu web con tu marca |
| Plataforma de vídeo como servicio con SDK | Medio | Alto en la interfaz | Producto propio sin operar servidores de medios |
| SFU propio (mediasoup, LiveKit, Janus) | Alto | Total | El vídeo es el núcleo del negocio y el coste por minuto importa |
La decisión se parece a la de cualquier software: comprar, adaptar o construir. Si dudas, esta comparativa entre SaaS vs software a medida ayuda a ordenar los costes, y empezar por un producto mínimo viable con una plataforma gestionada suele ser la forma más barata de validar antes de operar tus propios servidores.
06 Funciones que se esperan de una videoconferencia WebRTC
- ✓Compartir pantalla (getDisplayMedia) y cambiar de dispositivo sin salir de la llamada.
- ✓Sala de espera, roles (anfitrión, ponente, asistente) y expulsión de participantes.
- ✓Chat y reacciones por canal de datos.
- ✓Grabación en servidor, con aviso a los participantes.
- ✓Subtítulos y transcripción en directo.
- ✓Indicadores de calidad de red y reducción automática de resolución.
- ✓Cifrado de extremo a extremo opcional para reuniones sensibles.
- ✓Integración con calendario, CRM o la plataforma de formación.
07 Buenas prácticas para una buena calidad de llamada
-
1
Despliega cerca de tus usuarios
Servidores SFU y TURN en la región de tus clientes para reducir la latencia.
-
2
Activa simulcast
Así cada receptor recibe la calidad que su red admite sin degradar a los demás.
-
3
Prioriza el audio
Una reunión con vídeo pixelado se aguanta; con audio entrecortado, no.
-
4
Mide la calidad real
Recoge estadísticas de getStats (pérdida de paquetes, jitter, tiempo de ida y vuelta) por sesión.
-
5
Prueba en redes difíciles
Datos móviles, wifi pública y redes corporativas con cortafuegos estrictos.
Preguntas frecuentes sobre WebRTC video conferencing
Es la creación de videoconferencias de varios participantes con el estándar WebRTC, en el navegador o en apps, apoyándose normalmente en un servidor de medios SFU o MCU.
Un SFU reenvía el vídeo de cada participante sin decodificarlo; un MCU lo decodifica todo, lo mezcla en un único vídeo y lo vuelve a codificar, lo que exige mucha más CPU en el servidor.
En malla, unas pocas antes de saturar a los participantes. Con un SFU bien configurado, decenas o cientos por sala, según el hardware, el ancho de banda y cuántos vídeos se muestran a la vez.
Solo en malla y con muy pocas personas. Aun así necesitas un servidor de señalización para que los participantes se encuentren y, en muchas redes, un servidor TURN.
Depende del proyecto: Jitsi si quieres una aplicación completa, mediasoup para máximo control, LiveKit por sus SDK y opción gestionada, y Janus si necesitas pasarelas y plugins.
No por defecto cuando hay un SFU: los medios van cifrados en cada tramo, pero el servidor puede acceder a ellos. Para cifrado de extremo a extremo se añade una capa como SFrame.
Es una técnica en la que el emisor envía su vídeo en varias calidades a la vez para que el servidor SFU entregue a cada receptor la que su conexión puede asumir. Está normalizada en el RFC 8853.
El coste principal es el ancho de banda de los servidores SFU y TURN, más el desarrollo. Para validar la idea suele ser más barato empezar con una plataforma gestionada.
Fuentes consultadas
Sobre el autor
Germán Gutiérrez
Development Manager en appyweb
Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.
Ver perfil en LinkedIn ↗