SlideShare a Scribd company logo
1 of 98
Download to read offline
WebRTC en tu Web con
OpenVidu
Micael Gallego
Developer, Profesor, Científico... 29-04-21
¿Éste quién es?
@micael_gallego
micael.gallego@urjc.es
@micaelgallego Profesor Universitario / Formador & Consultor
Developer
Node para Javeros · @micael_gallego
Consultoría y
Formación
Cloud Computing
Microservices
Web / APIs
Testing / CICD
Software Architecture
http://codeurjc.es/mastercloudapps
Laboratorio de Software
Arquitectura, Diseño y Calidad Software
Servicios de Internet
Aplicaciones nativas de la nube
DevOps, integración y despliegue continuo
Videoconferencia - Cámaras IP
Web - Mobile / Java - Node - REST API
On premises - AWS
Open Source - Comercial
http://codeurjc.es https://openvidu.io
•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
18
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
19
•Hay servicios
combinan
WebRTC y
Streaming
Can I use WebRTC?
20
Existen librerías nativas para apps móviles
21
Tipos de apps WebRTC
Videoconferencia /
chat
Emisión de media
22
Tipos de apps WebRTC
Llamadas en
grupo
23
La conexión directa entre browsers NO
es adecuada en todos los casos
Tipos de apps WebRTC
Llamadas en
grupo
24
Servidores de media WebRTC
Servidor de
media
Servidores de media en WebRTC
Transcodificar*
VP8 H.264
Reenviar
(Para llamadas en grupo o
streaming de baja latencia)
Grabar
* Pero evitándolo siempre que sea posible porque es muy costoso en términos de CPU
26
Tipos de servicios de videollamadas
Como servicio Instalables
27
¿Cómo añadir
videoconferencia WebRTC en
tu web / app?
28
Sin servidor de media
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
Sin servidor de media
Backend App
Coturn
(TURN / STUN)
Server
Desplegamos la web app y un servidor TURN
Sin servidor de media
Frontend
App
Frontend
App
Backend App
User 1
User 2 Coturn
(TURN / STUN)
MVC / REST
MVC / REST
Server
1
1
Se conectan dos usuarios y cargan la web
Sin servidor de media
Frontend
App
Frontend
App
Backend App
User 1
User 2 Coturn
(TURN / STUN)
MVC / REST
MVC / REST
Server
1
1
El frontend recibe la localización del servidor TURN
Sin servidor de media
Frontend
App
Frontend
App
Backend App
User 1
User 2 Coturn
(TURN / STUN)
Server
2 TURN / STUN
2 TURN / STUN
Se pregunta la IP pública y se abren puertos en el router
Sin servidor de media
Frontend
App
Frontend
App
Backend App
User 1
User 2 Coturn
(TURN / STUN)
WebSocket
Server
3
WebSocket
3
Los usuarios se intercambian la información para conexión directa (ICE Candidates)
Se usan websockets para que el servidor haga push al browser
Sin servidor de media
Frontend
App
Frontend
App
Backend App
User 1
User 2 Coturn
(TURN / STUN)
Server
WebRTC
4
Si es posible se establece la conexión directa entre los browsers
Sin servidor de media
Frontend
App
Frontend
App
Backend App
User 1
User 2 Coturn
(TURN / STUN)
Server
WebRTC
4
Si no es posible la conexión directa se enruta a través del servidor TURN
37
Cuando hay más de 4 usuarios en una
videoconferencia se considera necesario un
servidor de media
38
Con servidor de media
Como servicio
39
Con servidor de media
Servidor Instalable Open Source
40
Con servidor de media
Servidor Instalable Open Source
41
Con servidor de media
Servidor Instalable Comercial
PRO
42
¿y es muy complicado?
43
Cómo Incluir Videollamadas en Grupo en tu Página Web con WebRTC y
Kurento
Leganés
12-13 Febrero 2015
44
https://openvidu.io
¿Qué es OpenVidu?
Un equipo
Carlos Ruiz Pablo Fuentes Carlos Santos Juan Navarro
¿Qué es OpenVidu?
- Plataforma para desarrollo de apps WebRTC de alto nivel
- Modelo de programación sencillo con múltiples ejemplos
- Funcionalidades avanzadas: Compartición de escritorio,
grabación, visión artificial, señales, monitorización...
- Edición Open source (Licencia Apache) y edición Comercial
https://openvidu.io/
Videoconferencia
- Modelo de desarrollo
simplificado de aplicaciones de
videoconferencia en grupo
- Permite modelos personalizados:
- Profesor - alumno
- Presentador - visor
Aplicación ejemplo: OpenVidu Call
Tutoriales con múltiples tecnologías
Fácil de desarrollar en tu equipo
- Despliegue de OpenVidu
- Linux, Win y Mac
- Contenedor Docker
Fácil de desarrollar en tu equipo
- Ejecutar aplicaciones de ejemplo (tutoriales)
Backend
Frontend
Fácil de desplegar en producción
- Dockerizado para despliegue on
premises
- CloudFormation para desplegar en AWS
- Generación de certificados con Let’s
Encrypt
54
Arquitectura
de una web app
con OpenVidu
App code
(Backend)
App code
(Frontend)
JavaScript
Library
Server
Control de acceso y permisos
- Tu aplicación desde el backend
- Usando la API REST de OpenVidu Server
- Crea sesiones
- Crea tokens para que usuarios se puedan conectar
- Tu aplicación desde frontend
- Con el token pide a la librería OpenVidu Browser que se
conecte a una sesión
Web Component
- Incrusta un componente gráfico de videoconferencia en
cualquier web
- Completamente funcional (mute, fullscreen, chat…)
- Controla desde backend quién puede acceder a la
videoconferencia
- Tantas videoconferencias simultáneas como quieras
Web Component
https://openvidu.io/docs/tutorials/openvidu-webcomponent/
Vainilla JS
https://openvidu.io/docs/tutorials/openvidu-insecure-js/
Vainilla JS
- Híbridas y nativas
Apps móviles
Demos temáticas: Classroom
- Compartir pantalla
- Grabación de la sesión
- Como se ve en el navegador
- Diseños personalizados
- Filtros de visión artificial
- Detector de voz
- Conexión a la Cámaras IP
Funcionalidades avanzadas
Arquitectura
de una web app
con OpenVidu
App code
(Backend)
App code
(Frontend)
JavaScript
Library
Server
Un poco más
a fondo...
Un poco más
a fondo...
Servidor de media WebRTC
Control de bajo nivel del procesamiento del media en pipelines
Controlable con un protocolo sobre WebSockets
70
http://www.kurento.org
71
http://www.kurento.org
72
Entrada
de media
Salida
de media
Kurento Media Server
Cliente Java
Las aplicaciones definen cómo
procesar el media que llega a
Kurento Media Server
Cliente JS
Browser
Cliente JS
node.js JSON-RPC sobre
websockets
73
Media Element
• Proporciona una funcionalidad básica
• Enviar/Recibir media por WebRTC
• Guardar/Leer media del disco duro
• Analizar el media
• Transformar media
• Existen diferentes media elements
disponibles
• Se pueden añadir nuevos con C/C++
Sink
SRC
74
Biblioteca de componentes predefinidos
75
Media Pipeline
• Cadena de elementos que implementan la funcionalidad
deseada
76
Media pipeline
Kurento Media Server
¿Cómo implementar un espejo mágico?
77
Kurento Module Creator
• Invocación remota de métodos desde
el cliente
• Gestión de eventos
• Generación de código de los clientes
Java y JavaScript
Elementos personalizados
• Procesamiento de audio
• Visión artificial
• Realidad aumentada
79
Un poco más
a fondo...
OpenVidu Browser & Server
- Simplifican el modelo de programación sobre Kurento media
server
- Gestiona sesiones, permisos, negociación de media
- Grabación con formato personalizado basado en navegador
web dockerizado
- Componentes front de alto nivel
PRO
OpenVidu PRO
- Edición Comercial de OpenVidu
- Licencia de pago por uso (no es as a service)
- Funcionalidades
- Escalabilidad y Tolerancia a Fallos
- Monitorización
- Medidor de calidad de la red
Escalabilidad
Autoescalado
Observabilidad
Observabilidad
Observabilidad
Observabilidad
Observabilidad
Observabilidad
¿Cuál es el futuro de OpenVidu?
Más escalabilidad
y tolerancia a fallos
Múltiples
OpenVidu Servers
(Master Nodes)
Más escalabilidad
y tolerancia a fallos
Servidores de
media conectados
entre sí
Mayor calidad del media
y eficiencia
+
¿WebRTC en tu web?
¿WebRTC en tu web?
Busque, compare
y, si encuentra
algo mejor,
¡cómprelo!
WebRTC en tu Web con OpenVidu
Gracias!! Preguntas?

More Related Content

What's hot

OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...
OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...
OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...Leostream
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Lorenzo Miniero
 
Using Rook to Manage Kubernetes Storage with Ceph
Using Rook to Manage Kubernetes Storage with CephUsing Rook to Manage Kubernetes Storage with Ceph
Using Rook to Manage Kubernetes Storage with CephCloudOps2005
 
Learning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdfLearning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdfJayprakash677449
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewJames Falkner
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutronvivekkonnect
 
InfluxDB + Kepware: Start Monitoring Industrial Data Quickly
InfluxDB + Kepware: Start Monitoring Industrial Data QuicklyInfluxDB + Kepware: Start Monitoring Industrial Data Quickly
InfluxDB + Kepware: Start Monitoring Industrial Data QuicklyInfluxData
 
VMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere ReplicationVMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere ReplicationVMworld
 
Isn't it ironic - managing a bare metal cloud (OSL TES 2015)
Isn't it ironic - managing a bare metal cloud (OSL TES 2015)Isn't it ironic - managing a bare metal cloud (OSL TES 2015)
Isn't it ironic - managing a bare metal cloud (OSL TES 2015)Devananda Van Der Veen
 
Red Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptxRed Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptxssuser18b1c6
 
Gitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
Gitflow with FME and Autobuilding a Project with the Gitlab Build PipelineGitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
Gitflow with FME and Autobuilding a Project with the Gitlab Build PipelineSafe Software
 
VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2Vepsun Technologies
 
From Spring Framework 5.3 to 6.0
From Spring Framework 5.3 to 6.0From Spring Framework 5.3 to 6.0
From Spring Framework 5.3 to 6.0VMware Tanzu
 
BGP Dynamic Routing and Neutron
BGP Dynamic Routing and NeutronBGP Dynamic Routing and Neutron
BGP Dynamic Routing and Neutronrktidwell
 
[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요slhead1
 
Openstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsOpenstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsThomas Morin
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionRobert Reiz
 

What's hot (20)

OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...
OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...
OpenStack VDI and DaaS with Leostream and the Teradici Pervasive Cloud Comput...
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
 
Using Rook to Manage Kubernetes Storage with Ceph
Using Rook to Manage Kubernetes Storage with CephUsing Rook to Manage Kubernetes Storage with Ceph
Using Rook to Manage Kubernetes Storage with Ceph
 
Learning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdfLearning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdf
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
InfluxDB + Kepware: Start Monitoring Industrial Data Quickly
InfluxDB + Kepware: Start Monitoring Industrial Data QuicklyInfluxDB + Kepware: Start Monitoring Industrial Data Quickly
InfluxDB + Kepware: Start Monitoring Industrial Data Quickly
 
VMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere ReplicationVMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere Replication
 
Isn't it ironic - managing a bare metal cloud (OSL TES 2015)
Isn't it ironic - managing a bare metal cloud (OSL TES 2015)Isn't it ironic - managing a bare metal cloud (OSL TES 2015)
Isn't it ironic - managing a bare metal cloud (OSL TES 2015)
 
Red Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptxRed Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptx
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Hexagonal architecture in PHP
Hexagonal architecture in PHPHexagonal architecture in PHP
Hexagonal architecture in PHP
 
Gitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
Gitflow with FME and Autobuilding a Project with the Gitlab Build PipelineGitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
Gitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
 
VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2
 
From Spring Framework 5.3 to 6.0
From Spring Framework 5.3 to 6.0From Spring Framework 5.3 to 6.0
From Spring Framework 5.3 to 6.0
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
BGP Dynamic Routing and Neutron
BGP Dynamic Routing and NeutronBGP Dynamic Routing and Neutron
BGP Dynamic Routing and Neutron
 
[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요
 
Openstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsOpenstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNs
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 

Similar to WebRTC en tu web con OpenVidu

OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferenciasMicael Gallego
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisQuobis
 
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
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)Iñaki Baz Castillo
 
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
 
Los stringers
Los stringersLos stringers
Los stringersroxana
 
Los stringers
Los stringersLos stringers
Los stringersroxana
 
SOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFSOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFjuliocasal
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 
Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,picitapastor
 
Concepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMSConcepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMSpicitapastor
 
Concepto de streaming
Concepto de streamingConcepto de streaming
Concepto de streamingpicitapastor
 
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
 
JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)OpenDireito
 
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...VOIP2DAY
 

Similar to WebRTC en tu web con OpenVidu (20)

OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
 
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
 
Software libre y_e-meetings_v2.0
Software libre y_e-meetings_v2.0Software libre y_e-meetings_v2.0
Software libre y_e-meetings_v2.0
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
 
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
 
Los stringers
Los stringersLos stringers
Los stringers
 
Los stringers
Los stringersLos stringers
Los stringers
 
SOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFSOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSF
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
Autobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure RelayAutobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure Relay
 
Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,
 
Concepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMSConcepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMS
 
Concepto de streaming
Concepto de streamingConcepto de streaming
Concepto de streaming
 
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
 
JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)
 
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
 

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
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael 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
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Micael 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
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
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
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas SoftwareMicael 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
 
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
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael 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
 

More from Micael Gallego (20)

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?
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
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...
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
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
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
 
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
 
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
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
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
 

Recently uploaded

El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDLeslie Villar
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxRodriguezLucero
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 
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
 
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
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxNicolas Villarroel
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAcoloncopias5
 
3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptxadso2024sena
 
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 magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxchinojosa17
 
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
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx46828205
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 

Recently uploaded (19)

El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).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
 
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
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptx
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
 
3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx
 
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 magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptx
 
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
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 

WebRTC en tu web con OpenVidu

  • 1. WebRTC en tu Web con OpenVidu Micael Gallego Developer, Profesor, Científico... 29-04-21
  • 2. ¿Éste quién es? @micael_gallego micael.gallego@urjc.es @micaelgallego Profesor Universitario / Formador & Consultor Developer
  • 3. Node para Javeros · @micael_gallego Consultoría y Formación Cloud Computing Microservices Web / APIs Testing / CICD Software Architecture http://codeurjc.es/mastercloudapps Laboratorio de Software Arquitectura, Diseño y Calidad Software Servicios de Internet Aplicaciones nativas de la nube DevOps, integración y despliegue continuo Videoconferencia - Cámaras IP Web - Mobile / Java - Node - REST API On premises - AWS Open Source - Comercial http://codeurjc.es https://openvidu.io
  • 4. •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. 5
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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. 11
  • 12. 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. 13 Servidor Web Los browsers se conectan directamente entre sí. Pueden usar UDP, TCP o SCTP 2 ¿Cómo funciona?
  • 14. 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
  • 15.
  • 16.
  • 17.
  • 18. 18 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
  • 20. Can I use WebRTC? 20 Existen librerías nativas para apps móviles
  • 21. 21 Tipos de apps WebRTC Videoconferencia / chat Emisión de media
  • 22. 22 Tipos de apps WebRTC Llamadas en grupo
  • 23. 23 La conexión directa entre browsers NO es adecuada en todos los casos Tipos de apps WebRTC Llamadas en grupo
  • 24. 24 Servidores de media WebRTC Servidor de media
  • 25. Servidores de media en WebRTC Transcodificar* VP8 H.264 Reenviar (Para llamadas en grupo o streaming de baja latencia) Grabar * Pero evitándolo siempre que sea posible porque es muy costoso en términos de CPU
  • 26. 26 Tipos de servicios de videollamadas Como servicio Instalables
  • 28. 28
  • 29. Sin servidor de media 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. Sin servidor de media Backend App Coturn (TURN / STUN) Server Desplegamos la web app y un servidor TURN
  • 31. Sin servidor de media Frontend App Frontend App Backend App User 1 User 2 Coturn (TURN / STUN) MVC / REST MVC / REST Server 1 1 Se conectan dos usuarios y cargan la web
  • 32. Sin servidor de media Frontend App Frontend App Backend App User 1 User 2 Coturn (TURN / STUN) MVC / REST MVC / REST Server 1 1 El frontend recibe la localización del servidor TURN
  • 33. Sin servidor de media Frontend App Frontend App Backend App User 1 User 2 Coturn (TURN / STUN) Server 2 TURN / STUN 2 TURN / STUN Se pregunta la IP pública y se abren puertos en el router
  • 34. Sin servidor de media Frontend App Frontend App Backend App User 1 User 2 Coturn (TURN / STUN) WebSocket Server 3 WebSocket 3 Los usuarios se intercambian la información para conexión directa (ICE Candidates) Se usan websockets para que el servidor haga push al browser
  • 35. Sin servidor de media Frontend App Frontend App Backend App User 1 User 2 Coturn (TURN / STUN) Server WebRTC 4 Si es posible se establece la conexión directa entre los browsers
  • 36. Sin servidor de media Frontend App Frontend App Backend App User 1 User 2 Coturn (TURN / STUN) Server WebRTC 4 Si no es posible la conexión directa se enruta a través del servidor TURN
  • 37. 37 Cuando hay más de 4 usuarios en una videoconferencia se considera necesario un servidor de media
  • 38. 38 Con servidor de media Como servicio
  • 39. 39 Con servidor de media Servidor Instalable Open Source
  • 40. 40 Con servidor de media Servidor Instalable Open Source
  • 41. 41 Con servidor de media Servidor Instalable Comercial PRO
  • 42. 42 ¿y es muy complicado?
  • 43. 43
  • 44. Cómo Incluir Videollamadas en Grupo en tu Página Web con WebRTC y Kurento Leganés 12-13 Febrero 2015 44
  • 46. ¿Qué es OpenVidu? Un equipo Carlos Ruiz Pablo Fuentes Carlos Santos Juan Navarro
  • 47. ¿Qué es OpenVidu? - Plataforma para desarrollo de apps WebRTC de alto nivel - Modelo de programación sencillo con múltiples ejemplos - Funcionalidades avanzadas: Compartición de escritorio, grabación, visión artificial, señales, monitorización... - Edición Open source (Licencia Apache) y edición Comercial https://openvidu.io/
  • 48. Videoconferencia - Modelo de desarrollo simplificado de aplicaciones de videoconferencia en grupo - Permite modelos personalizados: - Profesor - alumno - Presentador - visor
  • 51. Fácil de desarrollar en tu equipo - Despliegue de OpenVidu - Linux, Win y Mac - Contenedor Docker
  • 52. Fácil de desarrollar en tu equipo - Ejecutar aplicaciones de ejemplo (tutoriales) Backend Frontend
  • 53. Fácil de desplegar en producción - Dockerizado para despliegue on premises - CloudFormation para desplegar en AWS - Generación de certificados con Let’s Encrypt
  • 54. 54
  • 55. Arquitectura de una web app con OpenVidu App code (Backend) App code (Frontend) JavaScript Library Server
  • 56. Control de acceso y permisos - Tu aplicación desde el backend - Usando la API REST de OpenVidu Server - Crea sesiones - Crea tokens para que usuarios se puedan conectar - Tu aplicación desde frontend - Con el token pide a la librería OpenVidu Browser que se conecte a una sesión
  • 57. Web Component - Incrusta un componente gráfico de videoconferencia en cualquier web - Completamente funcional (mute, fullscreen, chat…) - Controla desde backend quién puede acceder a la videoconferencia - Tantas videoconferencias simultáneas como quieras
  • 59.
  • 62.
  • 63. - Híbridas y nativas Apps móviles
  • 65. - Compartir pantalla - Grabación de la sesión - Como se ve en el navegador - Diseños personalizados - Filtros de visión artificial - Detector de voz - Conexión a la Cámaras IP Funcionalidades avanzadas
  • 66.
  • 67. Arquitectura de una web app con OpenVidu App code (Backend) App code (Frontend) JavaScript Library Server
  • 68. Un poco más a fondo...
  • 69. Un poco más a fondo...
  • 70. Servidor de media WebRTC Control de bajo nivel del procesamiento del media en pipelines Controlable con un protocolo sobre WebSockets 70 http://www.kurento.org
  • 72. 72 Entrada de media Salida de media Kurento Media Server Cliente Java Las aplicaciones definen cómo procesar el media que llega a Kurento Media Server Cliente JS Browser Cliente JS node.js JSON-RPC sobre websockets
  • 73. 73 Media Element • Proporciona una funcionalidad básica • Enviar/Recibir media por WebRTC • Guardar/Leer media del disco duro • Analizar el media • Transformar media • Existen diferentes media elements disponibles • Se pueden añadir nuevos con C/C++ Sink SRC
  • 75. 75 Media Pipeline • Cadena de elementos que implementan la funcionalidad deseada
  • 76. 76 Media pipeline Kurento Media Server ¿Cómo implementar un espejo mágico?
  • 77. 77 Kurento Module Creator • Invocación remota de métodos desde el cliente • Gestión de eventos • Generación de código de los clientes Java y JavaScript Elementos personalizados • Procesamiento de audio • Visión artificial • Realidad aumentada
  • 78.
  • 79. 79
  • 80. Un poco más a fondo...
  • 81. OpenVidu Browser & Server - Simplifican el modelo de programación sobre Kurento media server - Gestiona sesiones, permisos, negociación de media - Grabación con formato personalizado basado en navegador web dockerizado - Componentes front de alto nivel
  • 82. PRO
  • 83. OpenVidu PRO - Edición Comercial de OpenVidu - Licencia de pago por uso (no es as a service) - Funcionalidades - Escalabilidad y Tolerancia a Fallos - Monitorización - Medidor de calidad de la red
  • 92. ¿Cuál es el futuro de OpenVidu?
  • 93. Más escalabilidad y tolerancia a fallos Múltiples OpenVidu Servers (Master Nodes)
  • 94. Más escalabilidad y tolerancia a fallos Servidores de media conectados entre sí
  • 95. Mayor calidad del media y eficiencia +
  • 97. ¿WebRTC en tu web? Busque, compare y, si encuentra algo mejor, ¡cómprelo!
  • 98. WebRTC en tu Web con OpenVidu Gracias!! Preguntas?