WebRTC permite la comunicación en tiempo real directamente entre navegadores sin pasar por un servidor mediante el marco ICE y el uso de servidores TURN. Existen numerosas aplicaciones y servicios de videoconferencia de código abierto basados en WebRTC como Jitsi Meet, BigBlueButton y otras. Para crear una aplicación de videoconferencia propia se puede utilizar directamente la API WebRTC, contribuir a proyectos existentes, hacer un fork o usar plataformas de videoconferencia de código abierto como OpenVidu, Kurento o Medooze.
2. •DISCLAIMER:
• He preferido no entrar en mucho detalle para
que se pueda tener una visión general.
• Algunas afirmaciones deberían llevar un
“depende” o “no siempre”
5. WebRTC: Comunicación en tiempo
real para la web
•Permite comunicar un browser directamente con
otro, peer-to-peer, sin que los datos tengan que pasar
por el servidor (siempre que sea posible)
7
6. WebRTC: Comunicación en tiempo
real para la web
• Para conseguirlo se usa el framework ICE para
traspasar los NATs y permitir una comunicación
directa entre navegadores
•Cuando no es posible la conexión directa se pueden
usar servidores estándar de reenvío de datos (TURN)
8
7. WebRTC: Comunicación en tiempo
real para la web
9
Webcam Micrófono Escritorio
•La baja latencia es ideal para comunicación
con audio y vídeo
8. WebRTC: Comunicación en tiempo
real para la web
•Desarrollado inicialmente por Google
•WebRTC es una Recommendation del W3C desde
el 26 de Enero del 2021
10
https://www.w3.org/TR/webrtc/
https://webrtc.org/
10. 12
¿Cómo funciona?
Servidor Web
Los browsers se conocen
conectándose a la misma aplicación
web y se intercambian información de
red (Candidatos ICE)
1
12. WebRTC: Comunicación en tiempo
real para la web
•La conexión directa proporciona muy baja
latencia
•Se puede transmitir audio, vídeo o datos
•La conexión entre los browsers puede ser por
TCP, UDP o SCTP
14
13. Can I use WebRTC?
15
Existen librerías nativas para apps móviles
23. 25
WebRTC vs Video Streaming
•El streaming de vídeo tiene latencias como mínimo de 5
segundos (puede ser más de 30 segundos)
•Se usan técnicas como Http Live Streaming (HLS)
•Esas latencias no pueden usarse para videoconferencia
https://en.wikipedia.org/wiki/HTTP_Live_Streaming
25. 27
Software de streaming software libre
https://www.red5pro.com/open-source/ https://antmedia.io/
26. 28
Modelos comerciales
•La mayoría de las soluciones libres tienen planes
comerciales
• Más funcionalidades
• Servicio alojados y administrados
• Soporte prioritario
• Personalizaciones
28. 30
Cómo crear una app de videoconferencia
•Usar la API estándar WebRTC del browser
• Es una API de muy bajo nivel
• El esfuerzo para crear una aplicación completa es
importante
• Tienes que conocer muy bien el estándar (y sus
limitaciones)
29. Cómo crear una app de videoconferencia
https://developer.mozilla.org/en-US/
docs/Web/API/WebRTC_API
Browser
WebRTC API
https://en.wikipedia.org/wiki/Travers
al_Using_Relays_around_NAT
Servidor TURN
(Usuarios con
redes especiales)
Coturn
(open source)
https://github.com/
coturn/coturn
(as a service)
https://www.twilio.
com/stun-turn
30. 32
Cómo crear una app de videoconferencia
•Colaborar y contribuir a un proyecto existente
• Tus necesidades pueden ser muy distintas a las del
proyecto
• Puede que no acepten contribuciones externas
• Requiere de conocimientos sobre cómo está implementado
el software
31. 33
Cómo crear una app de videoconferencia
•Hacer un fork y cambiar lo que necesites
• Requiere de conocimientos sobre cómo está implementado
el software
• Cualquier mejora fix del software original tiene que
integrarse en el fork (y eso puede ser muy problemático)
32. 34
Cómo crear una app de videoconferencia
•Usar plataformas de videoconferencia
• Son plataformas diseñadas para construir aplicaciones
(documentación, ejemplos…)
• Las actualizaciones de la plataforma son fáciles de integrar
en la aplicación (cambio de versión y guías para actualizar)
33. 35
Cómo crear una app de videoconferencia
Plataformas comerciales
(como servicio)