Qué es WebRTC

Definición de WebRTC

WebRTC (Comunicaciones web en tiempo real) es un estándar con soporte nativo para streaming de audio y contenido de vídeo desde el navegador o a un navegador sin necesidad de plugins adicionales o instalación de complementos externos. Con este estándar puede convertir su navegador en un punto final de videoconferencia.

TrueConf tiene soporte para WebRTC, lo que facilita la ejecución de reuniones basadas en web sin instalaciones adicionales. Simplemente comparta un enlace de reunión con su equipo para ver a todos en la pantalla!

Lo que necesitas saber sobre WebRTC

Ventajas

  • No se requiere ninguna instalación adicional de software o plugins para hacer una videollamada
  • Alta calidad de las comunicaciones gracias a los códecs de video modernos (VP8 y H.264) y los codecs de audio (Opus).
  • La calidad se ajusta automáticamente a cualquier tipo de conexión.
  • Soporte integrado para reducción de ruido y cancelación de eco.
  • Control automático de la sensibilidad del micrófono (AGC) para todos los participantes.
  • Alto nivel de seguridad: todas las conexiones están protegidas (HTTPS) y cifradas (SRTP).
  • Mecanismo de captura de contenido integrado (por ejemplo, escritorio compartido).
  • Puede ser incrustado en cualquier interfaz basada en HTML5 y/o WebSocket
  • Multiplataforma listo: Todas las aplicaciones WebRTC funcionan bien en cualquier sistema operativo de escritorio o móvil, siempre que su navegador sea compatible con WebRTC. De esta manera, puede reducir drásticamente los costos de desarrollo de software.

Desventajas

  • Como los navegadores no pueden sincronizar múltiples flujos entrantes, necesita un servidor de videoconferencia para mezclas de audio y vídeo para ejecutar audio grupal o videoconferencias.
  • Las soluciones WebRTC son incompatibles entre sí. El estándar generalmente se aplica sólo a los métodos de transmisión de vídeo y audio, mientras que los proveedores son libres de decidir sobre señalización, mensajería, transferencia de archivos, programación de conferencias y etc.
  • El mezclado y la transcodificación de conferencias grupales requiere grandes recursos informáticos. Soporte en videoconferencia grupal para WebRTC normalmente requiere suscripción de paga (en caso de soluciones en la nube) o grandes inversiones en infraestructura, ya que cada diseño de conferencia normalmente requiere al menos un núcleo lógico de CPU en el servidor.

Cómo los vendedores ayudan a esta novedosa tecnología

Videoconferencias de código abierto

WebRTC es un proyecto de código abierto que trabaja en estándares abiertos y es soportado por todos los navegadores principales, como Apple, Google, Microsoft, Mozilla, etc. WebRC soporta video, voz y contenido multimedia, que permite a los usuarios incorporar videoconferencias a cualquier aplicación y crear potentes soluciones de colaboración de vídeo basadas en la tecnología WebRTC.

La necesidad de WebRTC era real:

  1. Muchas soluciones de conferencias web (por ejemplo, Skype, Facebook y Google Hangouts) utilizaban RTC, pero requerían descargas, aplicaciones nativas o plugins.
  2. Descargar, instalar y actualizar plugins parecía una gran carga para la mayoría de los usuarios.
  3. Los plugins son complejos para configurar, actualizar y arreglar y pueden requerir licencias adicionales.

La regla principal de la tecnología WebRTC es que sus APIs deben ser de código abierto, libres, estandarizadas e incrustadas en los navegadores web.

WebRTC para el mercado de las videoconferencias

Aumento del número de puntos finales de videoconferencia

La tecnología WebRTC tiene un gran impacto en el desarrollo del mercado de las videoconferencias.  Después de que los primeros navegadores con soporte para WebRTC fueron liberados, el número potencial de puntos finales de videoconferencia en todo el mundo aumentó en mil millones de dispositivos.

WebRTC para desarrolladores

Con una amplia variedad de bibliotecas JavaScript y servicios en la nube basados en API que soportan WebRTC puede añadir videoconferencia a sus proyectos web en unas pocas horas. Anteriormente, para transferir datos de vídeo en tiempo real los fabricantes tenían que estudiar protocolos, estándares, invierte fuertemente en licencias para motores de desarrollo o de medios, que siempre han tenido costes adicionales para los clientes y usuarios. Sin embargo, ahora WebRTC se utiliza ampliamente en servicios como “Llamada a través del sitio” o “Soporte para chat en línea”, en otras palabras, WebRTC ha liberado las comunicaciones en tiempo real reduciendo significativamente los requisitos para la creación de soluciones con soporte de vídeo.

Skype para el caso Linux

En 2014, Microsoft retiró oficialmente Skype para el soporte de Linux, lo que supuso un duro golpe para los expertos en TI de todo el mundo. La tecnología WebRTC no está vinculada a ningún sistema operativo y se implementa en el navegador. Así, para los usuarios de Linux, las soluciones basadas en WebRTC pueden reemplazar fácilmente a Skype, sin embargo recomendamos revisar TrueConf para Linux.

La competencia con Flash

WebRTC y HTML5 rompieron la espalda de la tecnología Flash. Desde 2017 todos los principales navegadores han dejado de apoyar oficialmente a Flash, y la tecnología finalmente desaparece del mercado. El crédito debe concederse a la tecnología Flash, ya que creó el mercado de las conferencias web y ofreció capacidades técnicas para la comunicación en tiempo real en los navegadores en 2010.

Cómo funciona WebRTC

El lado del cliente

  1. El usuario abre la página web que contiene la etiqueta HTML5 <video>.
  2. El navegador solicita acceso a la cámara web y al micrófono’del usuario.
  3. El código JavaScript controla la configuración de la conexión (puntos finales o direcciones IP del servidor) para omitir NAT y Firewall.
  4. Después de confirmar los parámetros de conexión del segundo punto final, el navegador comienza a seleccionar y ajustar los codecs de audio y vídeo.
  5. Una vez hecho, comienza el proceso de codificación y comienza la transmisión de datos entre los clientes WebRTC. En nuestro caso, entre el navegador y el servidor.

Lado del servidor WebRTC

Para intercambiar datos entre dos participantes, el servidor de vídeo no es necesario. Si desea conectar a varios participantes en una conferencia, necesitará un servidor.

Esquemas del servidor WebRTC

En caso de que los medios de conferencia multipunto o el servidor WebRTC reciban transmisiones de medios desde múltiples puntos finales, ajústelos y mézclelos para enviarlos a través de WebRTC de regreso al diseño de video del grupo de los puntos finales. Los servidores de medios también podrían proporcionar interconectividad entre navegadores, salas de conferencias y diversas aplicaciones de escritorio o móviles mediante la transcodificación de flujos de medios desde y hacia puntos finales WebRTC. Sin embargo, como dijimos antes, tal transcodificación requiere mucha potencia de CPU. Es posible solicitar un cambio o esquema de igual a igual para conferencia multipunto WebRTC, sin embargo, debido a la falta de flujos de sincronización y soporte SVC en la norma en sí misma tales ejemplos no’t funcionar bien en la vida real.

Esquemas del servidor WebRTC

WebRTC Codecs

Códec de audio

Opus es un códec de audio de código abierto escalable con baja latencia, soporte de velocidad de bits variable y alto nivel de compresión. Opus es un códec perfecto para la transmisión de audio en condiciones de ancho de banda variable y bajo. Opus es una solución híbrida que combina las mejores características del códec SILK (utilizado en Skype) y CELT (codificación de datos de audio). En comparación con otros códecs de audio, Opus sin duda gana en función de una variedad de indicadores. Incluso supera a otros códecs populares con alta velocidad de bits como MP3, Vorbis, AAC LC. Opus restaura el sonido original “imagen” mejor que AMR-WB y Speex (usado en Skype). Este códec es el futuro de la compresión de audio y se usa en WebRTC de forma predeterminada.

G. 711 es un códec de voz bastante antiguo con una alta velocidad de bits (64 kbps). Se utiliza principalmente en sistemas de videoconferencia y telefonía heredados y se utiliza en WebRTC por su compatibilidad con ellos. Su principal ventaja es la carga de cálculo mínima y el bajo retraso de audio. G. 711 es compatible con una gran cantidad de dispositivos.

Códecs de vídeo

La industria ha tardado varios años en elegir un código de vídeo predeterminado para el estándar WebRTC. Ahora se recomiendan tanto los códecs de vídeo H.264 como los VP8. Sin embargo, es suficiente’s para que un navegador soporte sólo uno de ellos, para que sea compatible con WebRTC y causa muchos problemas para los desarrolladores (piénsen en la transcodificación de nuevo) porque Safari de Apple y Edge de Microsoft decidió no habilitar VP8 para WebRTC.

VP8 es un relativamente nuevo código de video de código abierto con buena escalabilidad y alta proporción de compresión. También tiene baja latencia y alta resistencia a la pérdida de cuadros. VP8 podría implementarse fácilmente en SOC, aunque muy pocos fabricantes lo implementaron en su hardware, así que la CPU sigue siendo el codificador VPN principal hoy en día. En términos de calidad’s es muy similar a H.264, que en cambio es implementado en todos los smartphone y GPU en el planeta.

H.264 es un código de vídeo propietario que se conoció mucho antes que el VP8. Este códec proporciona alta compresión mientras mantiene una buena calidad de video. El códec H.264 es una lengua franca para todo el hardware de videoconferencia.

Tenga en cuenta que ambos códecs recomendados no son compatibles con la codificación de video escalable (SVC), que es esencial para una experiencia multipunto sin CPU. El borrador estándar de WebRTC incluye soporte para códecs listos para SVC como VP9 y se espera que sea lanzado e implementado por los principales navegadores en 2018.

WebRTC API

La tecnología WebRTC se basa en tres APIs principales:

  • MediaStream. El navegador web acepta señales de audio y vídeo desde la cámara o el ordenador.
  • RTCPeerConnection. Conecta a los navegadores para compartir contenido multimedia desde una cámara, micrófono y escritorio. Esta API también procesa señales (limpia la interferencia de ruido, ajusta el volumen del micrófono)  y controla los códecs de audio y vídeo en uso.
  • RTCDataChannel. Proporciona la transmisión de datos en dos lados a través de una conexión establecida.
MediaStream

Cada navegador que participa en una conferencia WebRTC debe tener acceso al objeto RTCPeerConnection . El contenido de los medios se puede pasar a través de NAT y firewall gracias a ello. Para una transmisión exitosa de medios, los participantes intercambian los siguientes datos con la ayuda de sockets web:

  • El primer usuario envía offer-SDP (estructura de datos que contiene características de la secuencia de medios que pasará) al segundo usuario.
  • El segundo usuario genera una respuesta SDP y la envía al primer usuario;
  • después de eso, se establece el intercambio de candidatos de ICE entre las partes  (si los participantes están detrás de NAT o firewalls).

Después de que el intercambio entre los participantes ha sido finalizado con éxito, se establece el flujo de transferencia de medios (audio y vídeo).

Los navegadores han añadido recientemente soporte para RTCDataChannel haciendo posible la mensajería de texto o el intercambio de contenido durante las sesiones WebRTC.

Conexión vía WebRTC

Navegadores de escritorio compatibles

  • Google Chrome (17+) y todos los navegadores de la tecnología basada en Chromium;
  • Mozilla FireFox (18+);
  • Opera (12+);
  • Safari (11+);

Navegadores móviles para Android soportados

  • Google Chrome (28+);
  • Mozilla Firefox (24+);
  • Opera Mobile (12+);
  • Safari (11+).
Requisitos del sistema del cliente WebRTC de TrueConf →

WebRTC, Microsoft e Internet Explorer

De acuerdo con la política corporativa de Microsoft, a los chicos de Redmond no les gusta usar tecnologías que no controlan. Sin embargo, eventualmente se hizo difícil ignorar WebRTC incluso para Microsoft, y la compañía anunció un lanzamiento del proyecto ORTC  derivado del estándar WebRTC para su navegador Edge.

De acuerdo con los proveedores, ORTC  es una versión mejorada de WebRTC con un set mejorado de JavaScript y API basadas en HTML5. En general, significa que todo seguirá igual, pero Microsoft y no Google controlarán este estándar y su desarrollo. El conjunto de códecs se ha mejorado con la compatibilidad con H.264 y algunos códecs de audio de la serie G.7XX que se utilizan en sistemas heredados de telefonía y videoconferencia. Estamos a la espera del soporte integrado para RDP (transferencia de contenido) y mensajería. Por cierto, los usuarios de Internet Explorer se quedaron cortos, porque el soporte de ORTC solo sería compatible con  en Edge.

WebRTC, Apple y Safari

Según los analistas, WebRTC para Safari está en camino. Estamos esperando este lanzamiento a fines de 2017. Por ahora recomendamos usar el navegador Chrome para iOS y macOS. Es probable que Apple’s se mejore con el códec de video H.264 y H.265 y el códec de audio AAC-ELD (codificadores utilizados en FaceTime).

Soporte tecnológico en navegadores

NavegadorSoporte WebRTCSoporte VPN8Soporte de H.264Captura de pantalla
Google ChromeVVVV
Mozilla FireFoxVVVV
OperaVVVV
Microsoft EdgeVXVX
SafariVXVX
Internet ExplorerXXXX

Conferencia Web de TrueConf a través del navegador

Conferencia Web de TrueConf a través del navegador

TrueConf soporta WebRTC, lo que significa que no necesita descargar nada para unirse a la reunión. Realice videoconferencias sencillas e instantáneas con hasta 1600 participantes directamente desde su navegador. TrueConf ofrece una experiencia de audio y video de primera clase y controles de anfitrión avanzados para que sus reuniones sean divertidas y productivas.

Links útiles

Sitio web oficial de WebRTC
WebRTC en Wiki
WebRTC para desarrolladores
TrueConf WebRTC