Definición de WebRTC

WebRTC (Web Real Time Communications) es un estándar que permite la comunicación de redes entre pares en tiempo real y el intercambio de datos multimedia en navegadores, eliminando la necesidad de descargar e instalar aplicaciones o complementos adicionales. Gracias al WebRTC, cualquier navegador puede actuar como un punto final de videoconferencia: sólo tiene que abrir la página web de su reunión para iniciar videoconferencia. Este artículo describe el WebRTC, sus ejemplos de usos populares, así como ventajas y desventajas de esta tecnología.

WebRTC logo

Ejemplos de uso del WebRTC

TrueConf Server

TrueConf Server es un sistema de videoconferencia basado en SVC que opera tanto en LAN/VPN como a través de internet. El servidor del seminario web está implementado en las instalaciones de su empresa, restringiendo el acceso de terceros a sus datos personales. TrueConf podría ser una buena solución para la transmisión de eventos virtuales, educación a distancia y trabajo remoto gracias a la resolución de video en 4K y a una serie de herramientas de colaboración.

Descargar gratis

Precios

Google Meet

Google Meet es un servicio de videotelefonía desarrollado por Google en 2017. Los navegadores basados en Chromium (Google Chrome, etc.) utilizan muchas funciones ocultas de WebRTC que no se describen en las especificaciones tecnológicas. Los nuevos lanzamientos de WebRTC normalmente se integran en Google Meet (como en su predecesor, Google Hangouts), por ejemplo, captura de pantalla, fondo desenfocado y cifrado de hardware para algunas plataformas.

Jitsi Meet

Jitsi Meet es una aplicación de código abierto lanzada por 8x8. La tecnología Jitsi se basa en la arquitectura Simulcast, lo que significa que el servicio puede funcionar inestablemente con un ancho de banda bajo y requiere una conexión a internet de alta velocidad en el lado del servidor. Jitsi sólo admite conferencias basadas en el navegador y no ofrece aplicaciones completas de videoconferencia. Con Jitsi, es posible albergar hasta 75 participantes en una reunión (hasta 35 para una experiencia de alta calidad). Sin embargo, Jitsi no es una solución lista para usar, así que para hacer pleno uso de Jitsi en un entorno corporativo, necesitará habilidades avanzadas de programación.

BigBlueButton

BigBlueButton es un software de videoconferencia gratuito con un fuerte enfoque educativo. BigBlueButton es compatible con reuniones de video con hasta 100 participantes y ofrece muchas características esenciales para la enseñanza a distancia, por ejemplo, pizarra interactiva, intercambio de contenido, encuestas, salas de descanso y más.

¿Y qué hay de Zoom?

Contrario a la creencia popular, Zoom no utiliza la tecnología WebRTC para transferir y decodificar datos multimedia para ahorrar los recursos del servidor. En el lado del navegador, Zoom integra otras tecnologías web, como WebAssembly y WebSocket. Los métodos no estándar para transferir flujos de video pueden dar lugar a problemas de conectividad y de baja calidad de audio y video.

Cómo funciona WebRTC

Veamos cómo funciona la tecnología WebRTC utilizando como ejemplo una llamada de redes entre pares basadas en el navegador:

TrueConf Server
  1. Un usuario abre una página de WebRTC.
  2. Un navegador puede solicitar el acceso a una cámara web y un micrófono. En este caso, el usuario necesita otorgar un permiso para que la aplicación WebRTC tenga acceso a los dispositivos del usuario. También hay casos en los que no se requiere este permiso, por ejemplo, cuando se ve una transmisión en vivo.
  3. TrueConf Server
  4. El Protocolo de Descripción de Sesión (SDP) se genera en el navegador que inicia la conexión. De hecho, es un archivo de texto que contiene importantes detalles de conexión. Por ejemplo, el tipo de datos multimedia (audio, video o contenido), códecs, qué parámetros son compatibles por un navegador, etc.
  5. Dependiendo de cómo se implemente la tecnología, un iniciador de conexión transfiere este paquete a otros participantes. Generalmente se utiliza un servidor de señalización y un protocolo WebSocket para este propósito.
  6. En el lado receptor, un navegador recibe un paquete SDP y luego genera uno similar que también toma los datos desde el primer paquete. El segundo paquete es enviado de vuelta al lado inicial. Ahora ambos clientes ya se han conocido de alguna manera.
  7. Dependiendo de su implementación, el estado de conexión de la red se analiza junto con los pasos anteriores. Los clientes reciben una dirección de servidor STUN que se utiliza para conocer la dirección IP externa del dispositivo. Luego se compara con la dirección IP interna para determinar si se está utilizando NAT con la conexión y, si es así, cómo se enrutan los paquetes UDP. En casos más complejos, por ejemplo, cuando se utiliza un doble NAT, los desarrolladores usan servidores TURN. Son esencialmente repetidores que convierten una red de pares (P2P) en una cliente-servidor-cliente.
  8. Una vez que estos pasos se completan con éxito, la conexión se establece. El evento onicecandidate se solicita periódicamente para transferir información sobre direcciones IP, configuraciones NAT e intentos de conexión entre clientes.
  9. TrueConf Server

WebRTC en dispositivos móviles

Ventajas

  • No requiere instalación de software.
  • Comunicación de alta calidad gracias a:
    • Códecs modernos de video y audio
    • Ajuste automático de calidad
    • Cancelación de eco y ruido integrada
    • Control automático de ganancia (AGC)
  • Fuerte enfoque de seguridad: todas las conexiones están protegidas y cifradas según los protocolos DTLS y SRTP. Al mismo tiempo, WebRTC opera sólo sobre el protocolo HTTPS, mientras que un sitio web para poder utilizar esta tecnología debe tener un certificado firmado.
  • Compatibilidad con el SVC como parte de la implementación de códec VP9 y AV1. A pesar de que los navegadores aún no son compatibles con el SVC, TrueConf permite el SVC en los navegadores clientes.
  • Función para el uso compartido del escritorio.
  • Interfaces de control basados en HTML5 y JavaScript.
  • Proyecto de código abierto que puede incorporarse en su producto o servicio.
  • Multiplataforma: La aplicación WebRTC funciona igualmente bien con cualquier sistema operativo, ya sea de escritorio o móvil, si un navegador soporta WebRTC, lo que ahorra significativamente los recursos de desarrollo de software.

Desventajas

  • Las soluciones WebRTC son incompatibles entre sí, ya que el estándar sólo describe los métodos para transferir datos de video y audio, lo que permite a los desarrolladores decidir sobre los métodos de direccionamiento, opciones de seguimiento de estado, intercambio de mensajes e archivos, programación, etc. En otras palabras, no se puede hacer llamadas desde una aplicación WebRTC a otra.
  • Los usuarios preocupados por la seguridad estarán decepcionados al saber que WebRTC detecta sus direcciones IP reales. Al mismo tiempo, ni un proxy ni la red Tor ayudarán a permanecer anónimos. Puede ocultar su dirección IP utilizando varios servicios VPN y el servidor TURN. Si es necesario, WebRTC puede estar desactivado.
  • WebRTC no admite el control remoto de escritorio. Por supuesto, puede transmitir lo que está sucediendo en la pantalla de tu dispositivo, pero es un flujo de video de un solo sentido como una imagen transmitida desde una cámara, mientras que no hay forma de interactuar con una fuente de transmisión. Esto se hace por razones de seguridad: el código Javascript no puede controlar nada fuera de la ventana actual del navegador. Puede obtener más funciones, incluyendo el control remoto de escritorio, utilizando las aplicaciones cliente personalizadas por proveedores de videoconferencia.

Mercado de videoconferencias y WebRTC

Popularidad de la tecnología

Hoy en día, WebRTC es el segundo protocolo de video más popular después del patentado por Zoom. WebRTC supera todos los demás protocolos estándar (H.323 y SIP) y patentados (Microsoft Teams y Cisco Webex).

Un aumento en los puntos finales de videoconferencia

La tecnología WebRTC ha tenido un impacto profundo en el mercado de las videoconferencias. Tras el lanzamiento de los primeros navegadores con WebRTC en 2013, el número potencial de puntos finales de videoconferencia aumentó en mil millones de dispositivos en todo el mundo. De hecho, cada navegador es ahora un punto final de videoconferencia con capacidades básicas.

Soluciones personalizadas

Varias bibliotecas JavaScript y API en la nube compatibles con WebRTC le permiten añadir soporte de video a cualquier proyecto web. Anteriormente, la transferencia de datos en tiempo real requería habilidades avanzadas de programación y licencias adicionales, lo que resultaba en un aumento en el costo. Hoy en día, WebRTC se utiliza ampliamente para organizar centros de contacto con video, realizar seminarios web, etc.

WebRTC vs Flash

WebRTC y HTML5 fueron un golpe mortal para Flash que ya estaba pasando por tiempos difíciles. Desde 2017, los principales navegadores dejaron de ser compatibles con Flash, obligando a esta tecnología a desaparecer completamente del mercado.

Aspectos del WebRTC

Códecs del WebRTC

Los códecs WebRTC pueden dividirse en obligatorios (es necesario para que los navegadores que implementan esta tecnología soporten estos códecs) y opcionales (no estándar, aunque algunos navegadores los soportan).

Códecs de audio

Para comprimir el tráfico de audio, WebRTC utiliza códecs obligatorios (Opus y G.711) y opcionales (G.722, iLBC, iSAC).

Opus es un códec de audio de baja latencia (2.5 ms a 60 ms) con soporte de tasa de bits variable y alta compresión, que es perfecto para streaming de audio en redes de ancho de banda variable. Opus es el códec de audio principal de WebRTC. Es una solución híbrida que combina las mejores características de los códecs SILK (compresión de voz y mejora de voz humana) y CELT (codificación de audio). El códec es abierto y completamente libre de regalías. Sin lugar a dudas, Opus supera a otros códecs de audio de muchas maneras. En cuanto al número de parámetros, supera a los codecs de baja tasa de bits más populares, como MP3, Vorbis y AAC LC. En comparación con AMR-WB y Speex, Opus restaura la estructura de audio más cercana al original.

G.711 es un códec de voz heredado de alto bitrate (64 kbps) diseñado para su uso en sistemas VoIP tradicionales. La ventaja principal es la carga computacional mínima gracias a los algoritmos de compresión ligeros. El códec tiene un bajo nivel de compresión de señales de audio y no aumenta el retraso de audio en la comunicación entre usuarios.

G.711 es compatible con muchos dispositivos. Los sistemas que utilizan este códec son más fáciles de usar que los basados en otros códecs de audio, como G.723, G.726, G.728, etc. En términos de calidad, G.711 obtuvo una puntuación de 4,2 en pruebas MOS (una puntuación de 4–5 es la más alta y significa una buena calidad similar a la calidad del tráfico de voz en ISDN e incluso superior).

Al ser libre de regalías, G.722 es un estándar ITU-T adoptado en 1988. Puede operar a 48, 56 y 64 kbps, proporcionando una calidad de audio igual a G.711. Al igual que el G.711, es heredado, pero aún es compatible con Chrome, Safari y Firefox.

iLBC (internet Low Bitrate Codec) es un códec de voz de banda estrecha de código abierto compatible con Chrome y Safari. Debido a la alta compresión de flujo, este códec incrementa la carga del CPU.

iSAC (internet Speech Audio Codec) es un códec de audio de voz de banda ancha anteriormente patentado que ahora forma parte del proyecto WebRTC. Sin embargo, no es obligatorio, pero es compatible con Chrome y Safari. En el caso de WebRTC, utiliza un bitrate adaptativo de 10 a 52 kbps con una tasa de muestreo de 32 kHz.

Códecs de video

¿Qué códec de video elegir para WebRTC? Los desarrolladores tuvieron que pensarlo durante varios años, y la respuesta es VP8 y H.264. También existen códecs de video opcionales (H.265, VP9 y AV1).

VP8 es un códec de video abierto libre de regalías con alta velocidad de decodificación de video y mayor resistencia a la pérdida de cuadros. El códec es multifuncional: es fácil de integrar en las plataformas de hardware, por lo que los proveedores de videoconferencia a menudo lo usan en sus productos. Es compatible con Chrome, Edge, Firefox y Safari (12.1+).

El códec de vídeo pago H.264 se conoció mucho antes que su contraparte. Este códec ofrece una alta relación de compresión para flujos de video manteniendo al mismo tiempo una alta calidad de video. Ampliamente utilizado en sistemas de hardware de videoconferencia, es perfecto para WebRTC. Es compatible con Chrome (52+), Edge, Firefox (ya no es compatible con las versiones 68+ para Android) y Safari.

VP9 es un estándar de compresión de video abierto y libre de regalías desarrollado por Google en 2012. Posteriormente ampliado dentro del AV1It, resulta de las ideas detrás del VP8. Este códec es compatible con Chrome (48+) y Firefox.

H.265 es un códec de video pago considerado como el sucesor del H.264 y que proporciona la misma calidad visual a la mitad del bitrate. Esto es posible gracias a algoritmos de compresión más eficientes. Este códec está compitiendo actualmente con el AV1 libre de regalías.

AV1 es un códec de compresión de video de código abierto diseñado para la transmisión de video a través de internet. Es compatinble con Chrome (70+) y Firefox (67+).

“Сompatible con Chrome” significa la compatibilidad con todos los navegadores basados en Chromium en las versiones correspondientes.

Conexión del WebRTC

Dependiendo de su implementación WebRTC, pueden existir ciertas diferencias en las versiones de los navegadores compatibles. Obtenga más información sobre navegadores de escritorio y móviles compatibles con TrueConf aquí.

Si está ansioso de saber cómo evolucionará la tecnología WebRTC, le recomendamos que visite su sitio web oficial, el sitio web y depósito del proyecto WebRTC.


¡Despliegue su propio servidor de seminarios web en 15 minutos!