SlideShare a Scribd company logo
1 of 39
Download to read offline
Software libre
para videoconferencias
Micael Gallego
Developer, Profesor, Científico... 26-11-21
•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
6
¿Qué es
?
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
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
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
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/
11
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
13
Servidor Web
Los browsers se conectan directamente
entre sí. Pueden usar UDP, TCP o SCTP
2
¿Cómo funciona?
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
Can I use WebRTC?
15
Existen librerías nativas para apps móviles
Servicios de videoconferencia
basados en WebRTC
16
Software libre de videoconferencia
basados en WebRTC
20
https://meet.jit.si/
•Apache 2 License
• También lo ofrecen
como servicio de
forma gratuita
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-start
•GNU Lesser General
Public License
(LGPL)
•Orientado a
docencia
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
26
•Hay servicios
combinan
WebRTC y
Streaming
27
Software de streaming software libre
https://www.red5pro.com/open-source/ https://antmedia.io/
28
Modelos comerciales
•La mayoría de las soluciones libres tienen planes
comerciales
• Más funcionalidades
• Servicio alojados y administrados
• Soporte prioritario
• Personalizaciones
29
¿Cómo crear tu propio servicio
de videoconferencia?
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)
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
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
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)
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)
35
Cómo crear una app de videoconferencia
Plataformas comerciales
(como servicio)
36
PRO
Cómo crear una app de videoconferencia
Plataformas comerciales
(instalables)
37
Cómo crear una app de videoconferencia
Plataformas software libre
38
Cómo crear una app de videoconferencia
Plataformas software libre
39
Cómo crear una app de videoconferencia
Plataformas software libre
https://openvidu.io/ https://www.kurento.org/
40
Cómo crear una app de videoconferencia
Plataformas software libre
http://www.medooze.com/ https://github.com/medooze/media-server
Sergio García Murillo
Software libre
para videoconferencias
Micael Gallego
Developer, Profesor, Científico... 26-11-21
Gracias!

More Related Content

What's hot

Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosMicael Gallego
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoMicael Gallego
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebEsteban Saavedra
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisQuobis
 
Presentacion de Red5
Presentacion de Red5Presentacion de Red5
Presentacion de Red5pduran
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .NetGlobant
 
Microservicios y contenedores Docker
Microservicios y contenedores DockerMicroservicios y contenedores Docker
Microservicios y contenedores DockerPlain Concepts
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosSoftware Guru
 

What's hot (20)

Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
 
Introducción a microservicios
Introducción a microserviciosIntroducción a microservicios
Introducción a microservicios
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
 
Gestión de proyectos con Maven
Gestión de proyectos con MavenGestión de proyectos con Maven
Gestión de proyectos con Maven
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Presentacion de Red5
Presentacion de Red5Presentacion de Red5
Presentacion de Red5
 
red5
red5red5
red5
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net
 
Microservicios y contenedores Docker
Microservicios y contenedores DockerMicroservicios y contenedores Docker
Microservicios y contenedores Docker
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 

Similar to WebRTC videoconferencias

Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017VOIP2DAY
 
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferenciasIñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferenciasIñaki Baz Castillo
 
Dreamweaver
DreamweaverDreamweaver
Dreamweavercheve5
 
Dreamweaver
DreamweaverDreamweaver
Dreamweavercheve5
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBMEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBdaliacarolinaastocah
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 
Los stringers
Los stringersLos stringers
Los stringersroxana
 
Los stringers
Los stringersLos stringers
Los stringersroxana
 
Fuerza aerea ecuatoriana
Fuerza aerea ecuatorianaFuerza aerea ecuatoriana
Fuerza aerea ecuatorianaDavid Chica
 
Experiencia de uso de WebRTC en la educación
Experiencia de uso de WebRTC en la educaciónExperiencia de uso de WebRTC en la educación
Experiencia de uso de WebRTC en la educaciónJorge Rubiano
 

Similar to WebRTC videoconferencias (20)

Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
 
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferenciasIñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Dreamwever.
Dreamwever.Dreamwever.
Dreamwever.
 
Dreamwever
DreamweverDreamwever
Dreamwever
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
Cuadro comparativo 2
Cuadro comparativo 2Cuadro comparativo 2
Cuadro comparativo 2
 
Cuadro comparativo 2
Cuadro comparativo 2Cuadro comparativo 2
Cuadro comparativo 2
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBMEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
Los stringers
Los stringersLos stringers
Los stringers
 
Los stringers
Los stringersLos stringers
Los stringers
 
Fuerza aerea ecuatoriana
Fuerza aerea ecuatorianaFuerza aerea ecuatoriana
Fuerza aerea ecuatoriana
 
Go global
Go globalGo global
Go global
 
Experiencia de uso de WebRTC en la educación
Experiencia de uso de WebRTC en la educaciónExperiencia de uso de WebRTC en la educación
Experiencia de uso de WebRTC en la educación
 

More from Micael Gallego

La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...Micael Gallego
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestMicael Gallego
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas SoftwareMicael Gallego
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Micael Gallego
 
Como ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesComo ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesMicael Gallego
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesMicael Gallego
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...Micael Gallego
 
El mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorEl mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorMicael Gallego
 
Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Micael Gallego
 
GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016Micael Gallego
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2Micael Gallego
 
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicDesarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicMicael Gallego
 
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaTypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaMicael Gallego
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?Micael Gallego
 

More from Micael Gallego (18)

La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
 
Como ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesComo ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicaciones
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
 
El mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorEl mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesor
 
Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016
 
GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2
 
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicDesarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
 
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaTypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
 

Recently uploaded

Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMcespitiacardales
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 

Recently uploaded (10)

Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 

WebRTC videoconferencias

  • 1. Software libre para videoconferencias Micael Gallego Developer, Profesor, Científico... 26-11-21
  • 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”
  • 3. 5
  • 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/
  • 9. 11
  • 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
  • 11. 13 Servidor Web Los browsers se conectan directamente entre sí. Pueden usar UDP, TCP o SCTP 2 ¿Cómo funciona?
  • 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
  • 15.
  • 16.
  • 17.
  • 18. Software libre de videoconferencia basados en WebRTC 20
  • 20. •Apache 2 License • También lo ofrecen como servicio de forma gratuita https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-start
  • 21. •GNU Lesser General Public License (LGPL) •Orientado a docencia
  • 22.
  • 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
  • 27. 29 ¿Cómo crear tu propio servicio de videoconferencia?
  • 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)
  • 34. 36 PRO Cómo crear una app de videoconferencia Plataformas comerciales (instalables)
  • 35. 37 Cómo crear una app de videoconferencia Plataformas software libre
  • 36. 38 Cómo crear una app de videoconferencia Plataformas software libre
  • 37. 39 Cómo crear una app de videoconferencia Plataformas software libre https://openvidu.io/ https://www.kurento.org/
  • 38. 40 Cómo crear una app de videoconferencia Plataformas software libre http://www.medooze.com/ https://github.com/medooze/media-server Sergio García Murillo
  • 39. Software libre para videoconferencias Micael Gallego Developer, Profesor, Científico... 26-11-21 Gracias!