2. WEBRTC
QU’EST-CE QUE WEBRTC ? - WEBRTC.ORG
▸ WebRTC est une technologie qui permet à des clients
(navigateurs internet, mobiles, IoT) de se partager en P2P
et en temps réel des medias (tels que de l’audio, de la
video) ou du transfert de données.
▸ Une technologie jeune (2011): Mozilla, Google et d’autres
organisations discutent encore de la finalisation des
règles, API et protocoles de webRTC.
▸ Chrome, Firefox et Opera supportent nativement WebRTC.
Apple travaille actuellement à intégrer WebRTC à Safari.
2
3. WEBRTC
QUE CONTIENT LA TECHNOLOGIE WEBRTC ?
WebRTC est un package qui rassemble notamment:
▸ Codecs audio et video
▸ Technologies de traitement du signal (echo cancellation,
reduction du bruit, accès hardware)
▸ Gestion de la communication réseau (établissement de la
connection P2P, protocoles de communication, etc…)
▸ etc…
3
4. WEBRTC
QUE CONTIENT LA TECHNOLOGIE WEBRTC ?
4
• Standard Web API
• Session Management using SDP (offer/answer)
• Royaly Free Codecs
• G7.11
• Opus
• VP8/VP9
• NAT Traversal Strategies - STUN/TURN/ICE
• RTP/RTCP
• Encrypted Media - DTLS SRTP @ AES 128 bit encryption
• RTCP-MUX/Bundle and RTCP-FB protocols
• Forward Error Correction for media
• SCTP for Data transmissions
• Jitter buffers
• Packet loss concealment
• Web Camera and Microphone sub system
• Video and voice engine for rendering and playing video/audio
• Audio Echo Cancellers
• Auto Gain Control and Noise reduction
• Network Congestion Control
5. WEBRTC
WEBRTC: QUELLES APPLICATIONS ?
▸ WebRTC est adapté pour développer des fonctionnalités
telles que:
• Call audio et/ou vidéo
• Conférence online
• Partage d’écran
• Présentations live
• Transfert de fichier direct (de client à client)
• Plus généralement, communication en temps réel entre
appareils (ordinateurs, smartphones, tablettes, objets
connectés) sans serveur centralisé
5
6. WEBRTC
WEBRTC: QUELLES APPLICATIONS ?
▸ WebRTC n’est pas forcément adapté pour développer des
fonctionnalités telles que:
• Streaming de musique ou de vidéos: WebRTC priorise la
vitesse de communication plutôt que la qualité
• Messagerie: les applications de chat nécessitent souvent
de délivrer les messages aux destinataires offline
• Jeu multi joueurs: le besoin de coordination des
communications ou les différentes conditions réseau des
joueurs font d’un système de distribution centralisé des
données un meilleur choix
6
9. WEBRTC
WEBRTC: MISE EN OEUVRE
WebRTC permet des communications en peer to peer
mais… WebRTC a quand meme besoin de serveurs pour:
▸ Que les clients s’échangent les informations nécessaires
pour coordonner la communication. On parle de signaling.
▸ Gérer les adresses réseau et firewall à l’aide de serveurs
TURN (pour relayer le trafic en cas d’erreur) et STUN (pour
obtenir les adresses externes).
9
13. WEBRTC
WEBRTC: MISE EN OEUVRE
WebRTC permet donc la communication entre plusieurs clients. Mais cela ne
représente que 50% du travail, pour construire une application, il faut:
▸ Développer, déployer et maintenir un serveur de signaling
▸ Designer et développer un protocole de signaling
▸ Gérer les incompatibilités de certains navigateurs
▸ Gérer certains éléments réseau
▸ Porter WebRTC sur mobile
▸ Développer des fonctionnalisés additionnelles. Etc…
➡ Il y a donc 2 options: construire from scratch et maintenir sa propre solution, ou
utiliser une PaaS, typiquement une SDK communiquant avec ses propres
serveurs.
13
14. WEBRTC
TEMASYS - TEMASYS.IO / SKYLINK.IO
▸ Plugin pour IE et Safari
▸ Skylink SDK pour Web, iOS, Andoid et C++ (IoT)
Simplifie le travail du dévelopeur et comprend
notamment:
• Signaling
• TURN
• Skylink Media Relay
• Recording (à venir)
14
15. WEBRTC
SKYLINK SDK POUR IOS: DEMO
▸ Comment développeriez vous une app de call vidéo ?
▸ skylink.io/ios
15
23. WEBRTC
SKYLINK SDK POUR IOS: SAMPLE APP
github.com/Temasys/SkylinkSDK-iOS-Sample
Le repo sert d’exemple pour réaliser les fonctionnalités suivantes
sur iOS avec Skylink:
▸ Video call
▸ Audio call
▸ Chat en temps réel
▸ Transfert de fichier direct (photos, videos, musiques)
▸ Transfert de données
23