28
1 MIF38 - Lyon1 présentation web 2016 présenté par: CARAMAN Jocelyn NGUYEN Thi Ngoc Bich HOUNI Malik

Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Embed Size (px)

Citation preview

Page 1: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

1

MIF38 - Lyon1 présentation web 2016

présenté par:CARAMAN Jocelyn NGUYEN Thi Ngoc Bich HOUNI Malik

Page 2: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

2

PLANPartie1 :

C’est quoi ?

Partie3:Démo: application vidéo

Partie2:La signalisation

Page 3: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

3

C’est quoi ?

Page 4: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Définition● “WebRTC permet la communication en temps réel entre browsers en s’

afranchissant des modules d’extension propriétaires (pas de plugin)”

4

● un projet ‘open-source’● réunis un ensemble de protocoles● ‘inclus’ avec le browser compatible● contient des API écrites en javascript

Page 5: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

WebRTC

5

…. ce n’est pas JUSTE une spécification.C’est un ensemble de pièces, de composants qui vont bien ensemble.

Protocoles de communication IETF

Media, communication libs(libjingle,..)

W3C APIs MediaCapture, Streams...

WebRTC

Page 6: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Qu’est ce qu’on peut faire avec

6

Page 7: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Un peu d’histoire● Mai 2011: WebRTC est annoncé● Novembre 2011: Chrome 23 l’intègre● Janvier 2013 : Firefox 20 l’intègre ● Février 2013 : IntéropérabilitéWebRTC en quelques dates

7

Page 8: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Compatibilité

Compatible Pas Compatible

Et le mobile ?

Avec Chrome sur Android. et Firefox sur Android. IOS aussi.

8

Page 9: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

9

source: http://iswebrtcreadyyet.com/

Page 10: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

10

A travers les browser

Sur mobileWebRTC : cross-platform

Page 11: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Comment ça se passe …

1 2

3 4

5

11

● Peer-To-Peer Networking

Page 12: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

4 étapes avec webrtc:

● obtenir audio et vidéo● établir la connection avec les pairs● communiquer l’audio et la vidéo● communiquer les données arbitraires

12

Page 13: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

WebRTC comporte 3 APIs Principaux

13

MediaStreams (getUserMedia)

● accès à la vidéo,● accès à l’audio,● accès l’écran

RTCPeerConnection ● encode, décode les média● envoie à travers le réseaux● ...

RTCDataChannel ● envoie de données arbitraires● ...

Page 14: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

14

Signalisation

Page 15: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Le Signaling

C’est quoi Signaling ?

Pourquoi Signaling est indispensable pour le WebRTC ?

Est-ce que WebRTC implémente le Signaling ? Pourquoi ?

15

Page 16: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

SIP vs WebRTC

16Source : SINGH K. (2014)

Page 17: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Avantages ….

17

développement facile

● cross platform● pas besoin de

connaissances spécifiques sur le VoIP

● Une grande communauté de développeurs web

● composants qui vont bien ensemble

● GRATUIT !● Open Source

déploiement facile

● distribution via URL● mise à jour rapide● faible maintenance

sur plusieurs appareils

● “clique pour accéder”● n’importe quel appareil● de plugin/app native

de plus en plus d’utilisateurs dans le monde qui l’utilisent

Page 18: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

18

DémoUn simple serveur qui permet de faire un chat vidéo entre 2 personnes

Page 19: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Index.html

19

- Balises <video>

- Bouton pour lancer le chat

Page 20: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Server.js

- un serveur WebSocket de Node.js

- Nécessite un autre serveur pour servir les fichiers

20

Page 21: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Script webrtc.js

- Déclarations des variables globales

- Préfixation des fonctions pour plus de compatibilité

21

Page 22: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Script webrtc.js- Appelé quand la page est

prête

- Connexion au serveur de signalisation

- Obtention de la caméra + audio avec getUserMedia()

- Quand réussi, mise en place du stream sur la page

22

Page 23: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Script webrtc.js- Initier la connexion ou

répondre à une demande

- createOffer() / createAnswer() : initie/répond à une offre SDP

- gotMessageFromServer() : gère tous les messages reçus

23

Page 24: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Script webrtc.js

- Fonctions callbacks

- gotRemoteStream() : appelé quand la connexion est établie

24

Page 25: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Schéma récapitulatif de la connexion

25

Initiateur Destinataire

start(true);

peerConnection.createOffer(SDP);

gotMessageFromServer()start(false);creation de peerConnection;addIceCanditate();

gotMessageFromServer();setRemoteDescription();peer.createAnswer();

gotMessageFromServer();addIceCanditate();

gotRemoteStream();

gotMessageFromServer();setRemoteDescription;gotRemoteStream();

ICE

ICE

SDP

SDP

Page 26: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Conclusion

WebRTC est une technologie pas une solution

26

Pas une API standalone(ex : signaling)

On peut l’utiliser avec d’autres technologies pour créer un service, mais seul on ne vas pas loin...

Page 27: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Références

27

● WebRTC, https://webrtc.org/, dernière consultation 06 avril 2016● DODSON A., Peer - WebRTC audio chat, http://adodson.com/peer.js/#demo-

code, dernière consultation 05 avril 2016● DUTTON S. (2014) Getting started with WebRTC, http://www.html5rocks.

com/en/tutorials/webrtc/basics/, dernière consultation 06 avril 2016● SHANE T. (2014) A dead simple WebRTC exemple, https://shanetully.

com/2014/09/a-dead-simple-webrtc-example/, dernière consultation 06 avril 2016

● UBERTI J., DUTTON S. (2013) Real Time Communication with WebRTC : GoogleI/O 2013, https://www.youtube.com/watch?v=p2HzZkd2A40, dernière consultation 06 avril 2016

Page 28: Web rtc 2016 - Malik Houni, Jocelyn Caraman et Bich NGUYEN

Références● KORBAN (date de publication non indiquée) Tous les bonnes raisons d’

utiliser WebRTC dans vos projets, http://korben.info/toutes-les-bonnes-raisons-dutiliser-webrtc-dans-vos-projets.html, dernière consultation 06 avril 2016

● SINGH K. (2014) WebRTC vs SIP/SDP, http://blog.kundansingh.com/2014/12/webrtc-vs-sipsdp.html , dernière consultation 06 avril 2016

● LEVENT-LEVI T. (2014) Will WebRTC replace SIP, https://bloggeek.me/will-webrtc-replace-sip/ , dernière consultation 06 avril 2016

28