WebRTC ahora es un estándar W3C e IETF

Una breve descripción general de la historia, la arquitectura, los casos de uso y el futuro de WebRTC.

Huib Kleinhout
Huib Kleinhout

El proceso de definición de un estándar web es un proceso largo que garantiza la utilidad, la coherencia y la compatibilidad en todos los navegadores. Hoy en día, IETF y W3C marcaron la finalización de quizás uno de los estándares más importantes durante la pandemia: WebRTC.

Historial

WebRTC es una plataforma que proporciona capacidades de comunicación en tiempo real a los navegadores, las apps para dispositivos móviles y las apps de escritorio, que por lo general se usan para videollamadas. La plataforma consta de un conjunto integral de tecnologías y estándares. Google inició la idea de crear WebRTC en 2009, como alternativa a Adobe Flash y aplicaciones de escritorio que no se podían ejecutar en el navegador. La generación anterior de productos basados en el navegador se compiló sobre tecnología propia con licencia. Diversos productos se crearon con esta tecnología, incluido Hangouts. Luego, Google adquirió las empresas de las que les había otorgado la licencia a la tecnología y la puso a disposición como el proyecto WebRTC de código abierto. Esta base de código está integrada en Chrome y la usa la mayoría de las aplicaciones que usan WebRTC. Junto con otros proveedores de navegadores y líderes de la industria, como Mozilla, Microsoft, Cisco y Ericsson, se inició la estandarización de WebRTC tanto en W3C como en IETF. En 2013, Mozilla y Google demostraron hacer videollamadas entre sus navegadores. A través de la evolución del estándar, muchos debates sobre la arquitectura habían dado lugar a diferencias en la implementación entre los navegadores y cuestionaron la compatibilidad y la interoperabilidad. La mayoría de estos desacuerdos se resolvieron finalmente a medida que se finalizó el estándar en los últimos años. La especificación de WebRTC ahora incluye un conjunto completo de pruebas de plataforma y herramientas para abordar la compatibilidad, y los navegadores adaptaron sus implementaciones en gran medida en consecuencia. Esto conduce a un período desafiante en el que los desarrolladores web tuvieron que adoptar sus servicios de forma continua para diferentes implementaciones de navegadores y cambios de especificación.

Arquitectura y funcionalidad

La API de RTCPeerConnection es la parte central de la especificación de WebRTC. RTCPeerConnection se ocupa de la conexión de dos aplicaciones en extremos diferentes para comunicarse mediante un protocolo entre pares. La API de PeerConnection interactúa estrechamente con getUserMedia para acceder a la cámara y al micrófono, y con getDisplayMedia para capturar el contenido de la pantalla. WebRTC te permite enviar y recibir transmisiones que incluyen contenido de audio o video, así como datos binarios arbitrarios a través de DataChannel. La función multimedia para procesar, codificar y decodificar audio y video es el núcleo de cualquier implementación de WebRTC. WebRTC admite varios códecs de audio, y Opus es el más usado y versátil. Se requieren implementaciones de WebRTC para admitir el códec de video VP8 de uso gratuito de Google y H.264 para procesar videos. Las conexiones de WebRTC siempre están encriptadas, lo que se logra a través de dos protocolos existentes: DTLS y SRTP. WebRTC se basa en gran medida en los estándares y tecnologías existentes, desde códecs de video (VP8, H264), recorrido de red (ICE), transporte (RTP y SCTP) hasta protocolos de descripción de contenido multimedia (SDP). Esto está vinculado en más de 50 RFC.

Casos de uso: cuando se trata de cuestión de milisegundos

WebRTC se usa mucho en aplicaciones urgentes, como la cirugía remota, la supervisión del sistema y el control remoto de vehículos autónomos, y las llamadas de voz o video compiladas en UDP en las que no es posible el almacenamiento en búfer. Casi todos los servicios de videollamadas basados en el navegador de empresas como Google, Facebook, Cisco, RingCentral y Jitsi usan WebRTC. Google Stadia y NVIDIA GeForce NOW usan WebRTC para transmitir el juego desde la nube hasta el navegador web sin un retraso perceptible.

La pandemia se enfoca en el rendimiento de las videollamadas

Durante el año pasado, WebRTC tuvo un aumento de 100 veces en el uso en Chrome debido al aumento de las videollamadas desde el navegador. Como sabemos que las videollamadas se convirtieron en una parte fundamental de la vida de muchas personas durante la pandemia, los proveedores de navegadores han comenzado a optimizar las tecnologías de las que dependen las videollamadas. Esto era particularmente importante, ya que los recursos que requerían grandes reuniones y los efectos de video en las videoconferencias se volvieron más comunes cuando los empleados y estudiantes comenzaron a trabajar y estudiar desde casa. En el último año, Chrome logró un uso de batería hasta un 30% más eficiente para las videollamadas, y se implementarán más optimizaciones en casos de uso intensivo. Durante la pandemia, Mozilla, Apple y Microsoft realizaron mejoras significativas en la implementación de WebRTC, en particular para garantizar que cumplan con el estándar ya formalizado.

El futuro de WebRTC

Si bien WebRTC ahora está completo como estándar de W3C, las mejoras continúan. El nuevo códec de video AV1, que ahorra hasta un 50% del ancho de banda, está disponible en WebRTC y en los navegadores web. Se espera que las mejoras continuas en la base de código abierto reducen aún más el retraso y mejoren la calidad de video que se puede transmitir. WebRTC NV recopila la iniciativa para crear APIs complementarias para habilitar nuevos casos de uso. Estos consisten en extensiones a las APIs existentes para dar más control sobre la funcionalidad existente, como la codificación de video escalable y también APIs que brindan acceso a componentes de nivel inferior. Esta última ofrece más flexibilidad a los desarrolladores web para innovar mediante la integración de componentes personalizados de WebAssembly de alto rendimiento. Con las redes 5G emergentes y la demanda de servicios más interactivos, esperamos ver un aumento continuo de la compilación de servicios sobre WebRTC durante el próximo año.