WebRTC: descripción general

La Web ya no es ajena a la comunicación en tiempo real como WebRTC (Web Real-Time Communication)entra en juego. Aunque fue lanzado en mayo de 2011, aún se está desarrollando y sus estándares están cambiando. Un conjunto de protocolos está estandarizado por la comunicación en tiempo real en el grupo de trabajo de navegadores WEB enhttp://tools.ietf.org/wg/rtcweb/ del IETF (Internet Engineering Task Force)mientras que los nuevos conjuntos de API están estandarizados por el Grupo de trabajo de comunicaciones en tiempo real web enhttp://www.w3.org/2011/04/webrtc/ del W3C (World Wide Web Consortium). Con la aparición de WebRTC, las aplicaciones web modernas pueden transmitir fácilmente contenido de audio y video a millones de personas.

Esquema básico

WebRTC le permite configurar conexiones de igual a igual a otros navegadores web de forma rápida y sencilla. Para construir una aplicación de este tipo desde cero, necesitaría una gran cantidad de marcos y bibliotecas que se ocupan de problemas típicos como la pérdida de datos, la caída de la conexión y el cruce de NAT. Con WebRTC, todo esto viene integrado en el navegador de inmediato. Esta tecnología no necesita complementos ni software de terceros. Es de código abierto y su código fuente está disponible gratuitamente enhttp://www.webrtc.org/.

La API de WebRTC incluye captura de medios, codificación y decodificación de audio y video, capa de transporte y administración de sesiones.

Captura de medios

El primer paso es acceder a la cámara y al micrófono del dispositivo del usuario. Detectamos el tipo de dispositivos disponibles, obtenemos el permiso del usuario para acceder a estos dispositivos y administramos la transmisión.

Codificación y decodificación de audio y video

No es una tarea fácil enviar un flujo de datos de audio y video a través de Internet. Aquí es donde se utilizan la codificación y la decodificación. Este es el proceso de dividir cuadros de video y ondas de audio en trozos más pequeños y comprimirlos. Este algoritmo se llamacodec. Existe una enorme cantidad de códecs diferentes, que son mantenidos por diferentes empresas con diferentes objetivos comerciales. También hay muchos códecs dentro de WebRTC como H.264, iSAC, Opus y VP8. Cuando dos navegadores se conectan entre sí, eligen el códec compatible más óptimo entre dos usuarios. Afortunadamente, WebRTC realiza la mayor parte de la codificación entre bastidores.

Capa de transporte

La capa de transporte gestiona el orden de los paquetes, se ocupa de la pérdida de paquetes y se conecta a otros usuarios. Nuevamente, la API de WebRTC nos brinda un fácil acceso a los eventos que nos indican cuándo hay problemas con la conexión.

Gestión de sesiones

La gestión de sesiones se ocupa de gestionar, abrir y organizar conexiones. Esto se llama comúnmentesignaling. Si transfiere secuencias de audio y video al usuario, también tiene sentido transferir datos colaterales. Esto lo hace elRTCDataChannel API.

Los ingenieros de empresas como Google, Mozilla, Opera y otras han hecho un gran trabajo para llevar esta experiencia en tiempo real a la Web.

Compatibilidad del navegador

Los estándares WebRTC son uno de los que evolucionan más rápidamente en la web, por lo que no significa que todos los navegadores admitan las mismas funciones al mismo tiempo. Para comprobar si su navegador es compatible con WebRTC o no, puede visitarhttp://caniuse.com/#feat=rtcpeerconnection. A lo largo de todos los tutoriales, te recomiendo que uses Chrome para todos los ejemplos.

Probar WebRTC

Comencemos a usar WebRTC ahora mismo. Navegue con su navegador al sitio de demostración enhttps://apprtc.appspot.com/

Haga clic en el botón "UNIRSE". Debería ver una notificación desplegable.

Haga clic en el botón "Permitir" para comenzar a transmitir su video y audio a la página web. Debería ver una transmisión de video de usted mismo.

Ahora abra la URL en la que se encuentra actualmente en una nueva pestaña del navegador y haga clic en "UNIRSE". Debería ver dos transmisiones de video: una de su primer cliente y otra del segundo.

Ahora debe comprender por qué WebRTC es una herramienta poderosa.

Casos de uso

La web en tiempo real abre la puerta a una gama completamente nueva de aplicaciones, que incluyen chat basado en texto, uso compartido de pantalla y archivos, juegos, video chat y más. Además de la comunicación, puede utilizar WebRTC para otros fines, como:

  • marketing en tiempo real
  • publicidad en tiempo real
  • comunicaciones de back office (CRM, ERP, SCM, FFM)
  • Gestión de recursos humanos
  • redes sociales
  • servicios de citas
  • consultas médicas online
  • servicios financieros
  • surveillance
  • juegos multijugador
  • transmisión en vivo
  • e-learning

Resumen

Ahora debería tener una comprensión clara del término WebRTC. También debe tener una idea de qué tipos de aplicaciones se pueden construir con WebRTC, ya que ya lo ha probado en su navegador. En resumen, WebRTC es una tecnología bastante útil.