MAD · NOV 23-24 · 2018
Videoconferencias o control
remoto de drones
Todo es posible con WebRTC y OpenVidu
Micael Gallego
Developer, Profesor, Científico... MAD · NOV 23-24 · 2018
¿Éste quién es?
Profesor Universitario / Formador & Consultor
Developer
Node para Javeros · @micael_gallego
Consultancy / Training
Cloud Computing
Web Technologies
Extreme Programming
Testing / Git / Jenkins
Software Architecture
Concurrent Programming
http://codeurjc.es
Open source elastic platform
for end to end testing
https://elastest.io
Log Analysis
Test orchestration and comparison
Web and Mobile testing
Security testing
IoT testing
Performance testing
4
5
¿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)
•Usa el framework ICE para traspasar los NATs y
permitir una comunicación directa entre navegadores
•La baja latencia es ideal para transmitir audio y vídeo
6
WebRTC: Comunicación en tiempo
real para la web
•Desarrollado inicialmente por Google
•WebRTC es una Candidate Recommendation del W3C
7
https://www.w3.org/TR/webrtc/
https://webrtc.org/
8
9
¿Cómo funciona?
Servidor Web
Los browsers se conocen
conectándose a la misma aplicación
web usando Websockets o REST
1
10
Servidor Web
Los browsers se conectan directamente
entre sí. Pueden usar UDP, TCP o SCTP2
¿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
11
Fuentes de audio y vídeo en
WebRTC
12
Webcam Micrófono Compartición de
Escritorio
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
16
WebRTC vs Video Streaming
•El streaming de vídeo tiene latencias de hasta 10
segundos
•Se usan técnicas como Http Live Streaming (HLS)
•Las técnicas usadas no pueden usarse para
videoconferencia
https://en.wikipedia.org/wiki/HTTP_Live_Streaming
17
•Se puede combinar
WebRTC y
Streaming
•Emisión por
streaming en
YouTube Live una
videollamada en
Hangouts
Can I use WebRTC?
18
También como librerías nativas para apps
Compatibilidad entre browsers!
19
https://webrtc.org/testing/kite/
20
Tipos de apps WebRTC
Videoconferencia /
chat
Emisión de media
21
Tipos de apps WebRTC
Llamadas en
grupo
22
La conexión directa entre browsers NO
es adecuada en todos los casos
Tipos de apps WebRTC
Llamadas en
grupo
23
Servidores de media WebRTC
Servidor de
media
24
¿Qué suelen hacer los servidores de media?
Transcodificar
VP8 H.264
Reenviar
(Para llamadas en grupo o
streaming de baja latencia)
Grabar
25
Servidores de media WebRTC
Servicios de videoconferencia cerrados
26
27
Servidores de media programables
As a Service Servidores
Comerciales
Servidores
Open Source
28
¿y es muy complicado?
29
Cómo Incluir Videollamadas en Grupo en tu Página Web con WebRTC y
Kurento
Leganés
12-13 Febrero 2015
30
OpenVidu Commitconf 2018
¿Qué es OpenVidu?
- Plataforma para desarrollo de apps WebRTC
- Modelo de programación sencillo y múltiples ejemplos
- Funcionalidades avanzadas (grabación, filtros, visión
artificial…)
- Open source (Licencia Apache)
https://openvidu.io/
Videoconferencia
- Modelo de desarrollo
simplificado de aplicaciones de
videoconferencia en grupo
- Permite modelos personalizados:
- Profesor - alumno
- Presentador - visor
OpenVidu Commitconf 2018
Tutoriales con múltiples tecnologías
Fácil de instalar en tu laptop
- Desarrollo en Linux, Win y Mac
- OpenVidu Server + Kurento Server
dockerizado
- Integración con ngrok para facilitar
pruebas en dispositivos de la misma red
- Facilidades para tratar con certificados
autofirmados
Fácil de desplegar en producción
- CloudFormation para desplegar en
AWS
- Generación de certificados con Let’s
Encrypt
- Aplicaciones de ejemplo opcionales
probar rápidamente la funcionalidad
38
Arquitectura
de una web app
con OpenVidu
App code
(Backend)
App code
(Frontend)
JavaScript
Library
Server
Control de acceso y permisos
- Backend
- Se conecta a la API REST de OpenVidu Server
- Decide qué sesiones existen y qué usuarios pueden
conectarse a ella
- Decide qué rol tiene el usuario (PUBLISHER, SUBSCRIBER,
MODERATOR)
- Genera token y se lo envía a frontend
- Frontend
- Usa el token en OpenVidu Browser para conectarse a la
sesión
Tutoriales / Demos
- Ejecutar servidor OpenVidu
- Ejecutar la aplicación de demo
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/
OpenVidu Commitconf 2018
Vainilla JS
https://openvidu.io/docs/tutorials/openvidu-insecure-js/
Vainilla JS
OpenVidu Commitconf 2018
- Gestión de permisos Android
- Plugin nativo para iOS
Apps móviles híbridas
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 (p.e. drone)
Funcionalidades avanzadas
OpenVidu Commitconf 2018
Arquitectura
de una web app
con OpenVidu
App code
(Backend)
App code
(Frontend)
JavaScript
Library
Server
Un poco más
a fondo...
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
Servidor de media WebRTC
Control de bajo nivel del procesamiento del media en pipelines
Controlable con un protocolo sobre WebSockets
56
http://www.kurento.org
57
http://www.kurento.org
58
Entrada
de media
Salida
de mediaKurento 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
59
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
60
Biblioteca de componentes predefinidos
61
Media Pipeline
• Cadena de elementos que implementan la funcionalidad
deseada
62
Media pipeline
Kurento Media Server
¿Cómo implementar un espejo mágico?
63
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
OpenVidu Commitconf 2018
65
OpenVidu Commitconf 2018
OpenVidu Browser & Server
- Simplifica el modelo de programación sobre Kurento
- Gestiona sesiones, permisos, negociación de media
- Grabación con formato personalizado basado en navegador
web dockerizado
- Componentes front de alto nivel
OpenVidu Commitconf 2018
Testing OpenVidu & Kurento
Testing OpenVidu & Kurento
Testing OpenVidu & Kurento
Testing
OpenVidu
& Kurento
¿Quién desarrolla OpenVidu?
Proyectos con financiación pública
MAD · NOV 23-24 · 2018
Gracias!!
MAD · NOV 23-24 · 2018

Más contenido relacionado

PDF
Software libre para videoconferencias
PDF
WebRTC en tu web con OpenVidu
PPTX
WebRTC y Kurento en el T3cgFest 2015
PDF
Docker para Data Scientist - Master en Data Science URJC
PDF
Dev Tools para Kubernetes - Codemotion 2019
PDF
Curso Kubernetes CodeURJC
PDF
¿Cómo poner software de calidad en manos del usuario de forma rápida?
PDF
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Software libre para videoconferencias
WebRTC en tu web con OpenVidu
WebRTC y Kurento en el T3cgFest 2015
Docker para Data Scientist - Master en Data Science URJC
Dev Tools para Kubernetes - Codemotion 2019
Curso Kubernetes CodeURJC
¿Cómo poner software de calidad en manos del usuario de forma rápida?
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...

La actualidad más candente (20)

PDF
Curso Angular 9 - CodeURJC - Marzo 2020
PDF
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
PDF
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
PDF
Node para Javeros: Conoce a tu enemigo
PDF
Implementando una Arquitectura de Microservicios
PDF
Aplicaciones web
PDF
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
PDF
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
PDF
Aprendiendo GWT
PDF
GWT y SmartGWT - Introducción
PPT
El Web 2.0 MóVil Caminando Hacia El Teleco 2.0 Sin Caratula
PDF
DevOps: una breve introducción
PDF
20170405 - Ecosistema Javascript
PDF
Webinar WebRTC y HTML5 (spanish) - Quobis
PDF
Catalyst: Framework para el desarrollo de aplicaciones Web
PPTX
Framework Catalyst
PPTX
Desarrollo de Aplicaciones Web 2.0 con GWT
PDF
Codemotion 2015 crash y youdebug
PPTX
PDF
Gestión de proyectos con Maven
Curso Angular 9 - CodeURJC - Marzo 2020
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Node para Javeros: Conoce a tu enemigo
Implementando una Arquitectura de Microservicios
Aplicaciones web
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Aprendiendo GWT
GWT y SmartGWT - Introducción
El Web 2.0 MóVil Caminando Hacia El Teleco 2.0 Sin Caratula
DevOps: una breve introducción
20170405 - Ecosistema Javascript
Webinar WebRTC y HTML5 (spanish) - Quobis
Catalyst: Framework para el desarrollo de aplicaciones Web
Framework Catalyst
Desarrollo de Aplicaciones Web 2.0 con GWT
Codemotion 2015 crash y youdebug
Gestión de proyectos con Maven
Publicidad

Similar a OpenVidu Commitconf 2018 (20)

PDF
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
PDF
Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
PDF
WebRTC - Una nueva tecnología web al servicio de la educación. Caso en Virtua...
PDF
Experiencia de uso de WebRTC en la educación
ODP
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
PDF
V2 d2013 jose l millan e iñaki baz - webrtc
PPT
WebRTC Synopsis
PDF
Webrtc sur.gdgdevfest.com - @dperilla
PPTX
Presentación WebRTC y Lynckia
ODP
Si sólo ves un webphone no entiendes WebRTC
ODP
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
PDF
Tecnologías Web al servicio del desarrollo Móvil (WebSockets, WebRTC)
PDF
WebRTC - Una nueva tecnología web al servicio de la educación. Caso en Virtua...
PPTX
S6-DAW-2022S1.pptx
PPT
WebRCT - Comunicaciones en tiempo real desde el navegador...
PDF
Mod00 transparencias
PDF
T final modulo_1
PPT
Muestra el acceso a Bases de Datos mediante la WEB
PPTX
S7-DAW-2022S1.pptx
ODP
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
Iñaki Baz - VoIP2DAY 2017 | WebRTC: Más allá de conferencias
Más allá de conferencias | IÑAKI BAZ - VoIP2DAY 2017
WebRTC - Una nueva tecnología web al servicio de la educación. Caso en Virtua...
Experiencia de uso de WebRTC en la educación
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
V2 d2013 jose l millan e iñaki baz - webrtc
WebRTC Synopsis
Webrtc sur.gdgdevfest.com - @dperilla
Presentación WebRTC y Lynckia
Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
Tecnologías Web al servicio del desarrollo Móvil (WebSockets, WebRTC)
WebRTC - Una nueva tecnología web al servicio de la educación. Caso en Virtua...
S6-DAW-2022S1.pptx
WebRCT - Comunicaciones en tiempo real desde el navegador...
Mod00 transparencias
T final modulo_1
Muestra el acceso a Bases de Datos mediante la WEB
S7-DAW-2022S1.pptx
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
Publicidad

Más de Micael Gallego (18)

PDF
Modernizando el desarrollo de decenas de mini-apps web con Kubernetes - TechF...
PDF
La evaluación con realimentación y posibilidad de recuperación para evitar el...
PDF
Testing cloud and kubernetes applications - ElasTest
PDF
Introducción a las Pruebas Software
PDF
Testing fácil con Docker: Gestiona dependencias y unifica entornos
PDF
Using Docker to build and test in your laptop and Jenkins
PDF
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
PDF
Como ser mas productivo en el desarrollo de aplicaciones
PDF
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
PDF
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
PDF
El mundo real en el aula, con la ayuda del profesor
PDF
Angular 2 Campus Madrid Septiembre 2016
PDF
GRASP con PR para el SRFLP en el MAEB 2016
PDF
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
PDF
TypeScript - Angular 2 - ionic 2
PDF
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
PDF
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
PDF
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
Modernizando el desarrollo de decenas de mini-apps web con Kubernetes - TechF...
La evaluación con realimentación y posibilidad de recuperación para evitar el...
Testing cloud and kubernetes applications - ElasTest
Introducción a las Pruebas Software
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Using Docker to build and test in your laptop and Jenkins
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Como ser mas productivo en el desarrollo de aplicaciones
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El mundo real en el aula, con la ayuda del profesor
Angular 2 Campus Madrid Septiembre 2016
GRASP con PR para el SRFLP en el MAEB 2016
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript - Angular 2 - ionic 2
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
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?

Último (20)

PDF
Trabajo Estrategia de Mejoramiento-samuel solarte.pdf
PPTX
Tipos de tic en la sociedad(En la casa, educativo y laboral)
PDF
Presentación líquenes a lo largo de la historia humana .pdf
PDF
Tic en nuestra vida diaria en la educación
PPTX
NACIONALIDAD Y CIUDADANIA (1).pptxggggfffddd
PPTX
POR QUÉ LOS CRISTIANOS NO CELEBRAMOS ESTAS.pptx
PPT
Historia del estado Plurinacional de Bolivia
PDF
AWS Are you Well-Architected español (AWS WAF-R)
PPTX
CREADA PARA VIVIR EN COMUNION 27 de marzo.pptx
PDF
Bot automatico para trading en bitso.pdf
PDF
Presentación las TIC, prepa en línea sep
PDF
Historia de la guerra del chaco entre Bolivia y Paraguay
PPTX
4.1.1%20MEDIDAS%20DE%20CONTROL_r1PVC.pptx
PDF
Contexto Nacional de Guatemala en 2023- Elecciones y Crisis Institucional.pdf
DOCX
AraujoRosas_Maria_M1S3AI6.docx .
PPTX
Blue Pink Minimalist Modern Digital Evolution Computer Presentation.pptx
PDF
Mi_muerte_misterios_de_un_homicidio_numero_2.pdfjdjbd
PPTX
Charla 3 - La gestión de servicios de TI.pptx
PPTX
Herramientas útiles para Redes Sociales 2025.pptx
PDF
StreamSync Panel - Paneles Profesionales para la Gestión de Streaming.pdf
Trabajo Estrategia de Mejoramiento-samuel solarte.pdf
Tipos de tic en la sociedad(En la casa, educativo y laboral)
Presentación líquenes a lo largo de la historia humana .pdf
Tic en nuestra vida diaria en la educación
NACIONALIDAD Y CIUDADANIA (1).pptxggggfffddd
POR QUÉ LOS CRISTIANOS NO CELEBRAMOS ESTAS.pptx
Historia del estado Plurinacional de Bolivia
AWS Are you Well-Architected español (AWS WAF-R)
CREADA PARA VIVIR EN COMUNION 27 de marzo.pptx
Bot automatico para trading en bitso.pdf
Presentación las TIC, prepa en línea sep
Historia de la guerra del chaco entre Bolivia y Paraguay
4.1.1%20MEDIDAS%20DE%20CONTROL_r1PVC.pptx
Contexto Nacional de Guatemala en 2023- Elecciones y Crisis Institucional.pdf
AraujoRosas_Maria_M1S3AI6.docx .
Blue Pink Minimalist Modern Digital Evolution Computer Presentation.pptx
Mi_muerte_misterios_de_un_homicidio_numero_2.pdfjdjbd
Charla 3 - La gestión de servicios de TI.pptx
Herramientas útiles para Redes Sociales 2025.pptx
StreamSync Panel - Paneles Profesionales para la Gestión de Streaming.pdf

OpenVidu Commitconf 2018