Tecnología y WebRTC
Krona.Chat se basa en streaming WebRTC en directo sobre Janus, un servidor de medios gratuito y de código abierto. El balanceo de carga de los flujos de medios entre servidores Janus lo hemos desarrollado nosotros: los streams se distribuyen automáticamente entre cientos de servidores en distintas regiones y la latencia se mantiene por debajo de un segundo.
Janus: un servidor de medios WebRTC gratuito y de código abierto
Los streams pasan por Janus WebRTC Server, un servidor de medios de código abierto. Es gratuito: no hay costes de licencia ni en el lanzamiento ni a medida que crece el número de servidores, modelos y espectadores.
Janus funciona como SFU (Selective Forwarding Unit): un único flujo entrante de la modelo se reenvía a muchos espectadores sin recodificarlo para cada uno. Así, un solo servidor de medios puede atender a una gran audiencia y el vídeo llega a los espectadores con una latencia mínima.
Balanceo de carga de flujos de medios entre servidores Janus
Janus por sí solo no puede distribuir los streams entre servidores: hemos integrado el balanceo de carga de flujos de medios en la plataforma Krona.Chat. Gracias a ello, los servidores de medios funcionan como un único clúster:
Cientos de servidores
La carga puede repartirse entre cientos de servidores de medios: para cubrir más emisiones y espectadores basta con añadir servidores.
Distribución geográfica automática
Los streams se distribuyen automáticamente entre servidores de distintas regiones, más cerca de las modelos y de los espectadores.
Recuperación automática de streams
Cualquier servidor puede reiniciarse: todos los streams que atendía se restablecen automáticamente.
Cambios de servidores sin interrupciones
Es fácil añadir servidores nuevos al clúster, y cualquier servidor puede retirarse de él para mantenimiento.
Sin alternativa en el mercado
No existen plataformas de webcam listas para usar con balanceo multiservidor de streams WebRTC sobre un servidor de medios gratuito: las soluciones conocidas funcionan con un único servidor de medios y no pueden escalar añadiendo servidores.
La solución multiservidor de Krona.Chat gana en tecnología y en coste total de propiedad: no paga licencias de servidor de medios, y el vídeo de baja latencia se entrega a través de sus propios servidores en lugar de una CDN costosa que factura por gigabyte.
WebRTC en lugar de HLS: vídeo en directo sin retraso
Con streaming HLS o DASH, el vídeo llega a los espectadores con decenas de segundos de retraso. WebRTC entrega el stream en tiempo real, con una latencia inferior a un segundo. Para un sitio de webcams esto es crucial: las reacciones de la modelo al chat, a las propinas y a los juguetes Lovense, así como los shows privados y de grupo, solo funcionan en directo.
Emisión y visualización en cualquier navegador
- los espectadores ven las emisiones en el navegador de un ordenador (Windows, macOS, Linux) o de un teléfono o tableta (Android, iOS), sin plugins ni aplicaciones;
- las modelos emiten directamente desde el navegador, en un ordenador o un teléfono: consulte el panel de modelo;
- la calidad del vídeo se adapta a la velocidad de conexión de cada espectador sin interrumpir el stream para los demás.
Stack tecnológico de la plataforma
Las tecnologías y los lenguajes sobre los que está construida la plataforma de webcam Krona.Chat:
ReactJS
El front end de los sitios de la plataforma: el sitio de webcams y las áreas de modelos y socios.
WebRTC
Vídeo y audio en directo en el navegador con latencia inferior a un segundo.
Janus
Un servidor de medios WebRTC gratuito y de código abierto que funciona como SFU.
Balanceador de medios Krona.Chat
Desarrollo propio: distribuye los flujos de medios entre servidores Janus por región.
Cloudflare
Balanceador de carga del tráfico web de los sitios de la plataforma.
PHP 8.5
El lenguaje del lado del servidor de la plataforma.
C
Procesamiento de los flujos de medios y trabajo con el servidor Janus.
MariaDB 11.x / 12.x
La base de datos relacional de la plataforma.
Galera Cluster
Un clúster MariaDB Galera de al menos tres servidores para una base de datos resiliente.
¿Cuántos servidores de medios necesita un sitio de webcams?
Como referencia, un servidor de medios dedicado con un puerto garantizado de 1 Gbit/s ofrece unos 700 Mbit/s de ancho de banda útil con carga sostenida. El número de servidores depende de las emisiones simultáneas, los espectadores y la calidad elegida, desde 480p hasta 4K.
Dimensione su configuración para su carga con la calculadora de servidores.
Preguntas sobre WebRTC y el servidor de medios
¿Qué servidor de medios utiliza Krona.Chat?
Janus WebRTC Server, un servidor de medios gratuito y de código abierto que funciona como SFU. No hay costes de licencia del servidor de medios, tenga el clúster los servidores que tenga.
¿Cómo funciona el balanceo de streams WebRTC entre servidores?
La plataforma Krona.Chat balancea la carga de los flujos de medios entre servidores Janus. Los streams se distribuyen automáticamente entre servidores de medios de distintas regiones, y un clúster puede tener cientos de servidores.
¿Qué ocurre si un servidor de medios se reinicia?
Todos los streams que atendía ese servidor se restablecen automáticamente. Se pueden añadir servidores nuevos al clúster y retirar cualquier servidor para mantenimiento.
¿Por qué WebRTC y no HLS?
WebRTC entrega el vídeo en tiempo real con una latencia inferior a un segundo, mientras que HLS se retrasa decenas de segundos. En un sitio de webcams, la interacción en directo entre la modelo y el espectador (chat, propinas, shows privados) solo es posible con WebRTC.
¿Cuántos servidores necesita un sitio de webcams?
Como referencia, unos 700 Mbit/s de ancho de banda útil por servidor de medios con un puerto de 1 Gbit/s. El número exacto depende de las emisiones, los espectadores y la calidad del vídeo; la calculadora de servidores ofrece una estimación.
¿Sobre qué stack tecnológico está construida la plataforma?
Front end: ReactJS; vídeo: WebRTC; servidor de medios: Janus con el balanceador de medios Krona.Chat; balanceo del tráfico web: Cloudflare; lenguaje del lado del servidor: PHP 8.5; flujos de medios y Janus: C; base de datos: MariaDB 11.x / 12.x en un clúster Galera.
¿Cuánto cuesta entregar vídeo de baja latencia?
El servidor de medios Janus es gratuito, y el vídeo se entrega a través de sus propios servidores con un coste fijo de ancho de banda, en lugar de mediante una CDN que factura por gigabyte. Así, el coste de mantener los servidores de medios y de entregar vídeo de baja latencia sigue siendo bajo incluso cuando la audiencia crece.