Una breve descripción general de la historia, la arquitectura, los casos de uso y el futuro de WebRTC.
El proceso de definir un estándar web es un proceso largo que garantiza la utilidad, la coherencia y la compatibilidad en todos los navegadores. Hoy, el W3C y el IETF marcan la finalización de uno de los estándares más importantes durante la pandemia: WebRTC.
Historial
WebRTC es una plataforma que les brinda a los navegadores, las apps para dispositivos móviles y las apps para computadoras de escritorio capacidades de comunicación en tiempo real, que suelen usarse para las videollamadas. La plataforma consta de un conjunto integral de tecnologías y estándares. Google inició la idea de crear WebRTC en 2009, como una alternativa a Adobe Flash y a las aplicaciones para computadoras que no se podían ejecutar en el navegador. La generación anterior de productos basados en navegadores se creó con tecnología propietaria con licencia. Se compilaron varios productos con esta tecnología, incluido Hangouts. Luego, Google adquirió las empresas de las que había obtenido la licencia de la tecnología y la puso a disposición como el proyecto de código abierto WebRTC. 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 en el W3C y la IETF. En 2013, Mozilla y Google demostraron las llamadas de video entre sus navegadores. A lo largo de la evolución del estándar, muchos debates arquitectónicos generaron diferencias de implementación entre los navegadores y desafiaron la compatibilidad y la interoperabilidad. La mayoría de estos desacuerdos se resolvieron cuando se finalizó el estándar en los últimos años. La especificación de WebRTC ahora se acompaña de un conjunto completo de pruebas de plataforma y herramientas para abordar la compatibilidad, y los navegadores adaptaron sus implementaciones en gran medida según corresponda. Esto pone fin a un período desafiante en el que los desarrolladores web tuvieron que adaptar sus servicios de forma continua a 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 conectar dos aplicaciones en diferentes extremos para comunicarse con un protocolo punto a punto. 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 funcionalidad multimedia para procesar, codificar y decodificar audio y video proporciona 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. Las implementaciones de WebRTC deben 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 estándares y tecnologías existentes, desde los codecs de video (VP8, H264), el recorrido de red (ICE), el transporte (RTP, SCTP) hasta los protocolos de descripción de contenido multimedia (SDP). Esto se une en más de 50 RFC.
Casos de uso: cuando se trata de milisegundos
WebRTC se usa ampliamente en aplicaciones urgentes, como cirugías remotas, supervisión de sistemas y control remoto de automóviles autónomos, y llamadas de voz o video compiladas en UDP, donde 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 obtener la transmisión de la partida de juego de la nube al navegador web sin demoras perceptibles.
La pandemia pone el foco en el rendimiento de las videollamadas
En el último año, WebRTC observó un aumento de 100 veces en el uso de Chrome debido al aumento de las llamadas de video desde el navegador. Dado que las videollamadas se convirtieron en una parte fundamental de la vida de muchas personas durante la pandemia, los proveedores de navegadores comenzaron a optimizar las tecnologías de las que dependen. Esto fue especialmente importante, ya que las reuniones grandes y los efectos de video en las videoconferencias que requieren muchos recursos se volvieron más comunes cuando los empleados y los estudiantes comenzaron a trabajar y estudiar desde casa. En el último año, Chrome se volvió hasta un 30% más eficiente en el uso de la batería para las videollamadas, y se agregarán más optimizaciones para situaciones de uso intensivo. Mozilla, Apple y Microsoft hicieron mejoras significativas en su implementación de WebRTC durante la pandemia, en particular, para asegurarse de cumplir con el estándar ahora formalizado.
El futuro de WebRTC
Si bien WebRTC ahora está completo como estándar del W3C, las mejoras continúan. El nuevo códec de video AV1, que ahorre hasta el 50% del ancho de banda, estará disponible en WebRTC y en los navegadores web. Se espera que las mejoras continuas en la base de código abierto reduzcan aún más la demora y mejoren la calidad del video que se puede transmitir. WebRTC NV reúne la iniciativa para crear APIs complementarias que permitan nuevos casos de uso. Estas consisten en extensiones de las APIs existentes para brindar más control sobre las funciones existentes, como la codificación de video escalable, así como las APIs que brindan acceso a componentes de nivel inferior. Este último les brinda 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 los servicios que se compilan en WebRTC en el próximo año.