Hace tiempo que no investigo sobre WebRTC pero creo que puedo responder a esta pregunta.
WebRTC es una Interfaz de Programación de Aplicaciones (API) desarrollada por el W3C que aún está en desarrollo y siendo estandarizada por el grupo RTCWEB IETF (Rtcweb Status Pages).
Su principal objetivo es permitir la comunicación peer-to-peer entre navegadores web. Esta comunicación puede ser utilizada para transferir múltiples tipos de datos: archivos, vídeo o audio. Todo ello sin necesidad de ningún plugin.
Por supuesto que este tipo de proyecto plantea muchos problemas que implican diferentes áreas, seguridad, protocolos, códecs multimedia, etc. Sin embargo, se encuentra en un estado bastante avanzado y se puede utilizar ahora mismo: AppRTC.
Ahora mismo Chrome y Firefox son dos de los navegadores que ofrecen soporte completo de WebRTC en PC.
Técnicamente la API se divide en tres partes diferentes:
- getUserMedia
- PeerConnection
- DataChannels
getUserMedia es una librería de JavaScript utilizada para acceder a las entradas multimedia del dispositivo a través del navegador (micrófono y/o webcam). Una vez que las entradas son permitidas, la librería PeerConnection inicia una marcación para conectar con el otro peer y acordar el método de transferencia de datos. Los DataChannels permiten a ambos navegadores compartir los datos obtenidos previamente.
Los grupos de discusión han estado trabajando duro para dar vida a esto pasando por múltiples problemas pero parece que va a liberar todo su potencial comercial pronto ya que muchas startups y corporaciones están empezando a utilizar esta API para su software.
WebRTC es parte de HTML5 .