Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Toutes les bonnes raisons d’utiliser WebRTC dans vos projets

Je présente souvent sur ce site, de petits services web bien sympathiques qui utilisent le WebRTC, mais savez-vous exactement ce qu’est le WebRTC ?
Le WebRTC est un framework ouvert soutenu entre autres par Google, Mozilla et Opera, qui permet aux navigateurs mobiles et desktops de faire de la communication audio et vidéo temps réel (RTC) grâce à des API en JavaScript.
Les specs de l’API sont gérés par le W3C et les specs sur protocole sont gérés par l’IETF, ce qui en fait bien quelque chose d’ouvert.

Alors, pourquoi utiliser WebRTC ?

Jusqu’à il n’y a pas si longtemps, lorsqu’on voulait proposer un service de visioconférence sur le net, il fallait obligatoirement passer par Flash, Silverlight ou des machins encore plus proprios avec bien évidemment des plugins à installer chez l’internaute pour que ça fonctionne.
Mais cette époque est révolue grâce au WebRTC qui utilise des technos ouvertes implémentées dans les navigateurs récents.

Utiliser du WebRTC sur son site c’est donc participer à un Internet ouvert, se faire plaisir avec le code et surtout ne plus prendre la tête à vos internautes. De plus, le WebRTC est capable de passer à travers les firewalls / NAT et fonctionne réellement en P2P, évitant la centralisation des connexions (et soulageant vos admins sys).

fig-1

Le WebRTC se compose donc de 3 APIs permettant de faire tout ça :

  • GetUserMedia (Accès à la webcam et au micro)
  • PeerConnection (Envoyer et recevoir des médias)
  • DataChannels (Envoyer des fichiers qui ne sont pas des médias entre les navigateurs)

Webrtc_triangle_architecture.svg

Source Wikipedia

Voici quelques exemples d’utilisation de WebRTC pour illustrer tout ça :

  • Appear.in : Un site permettant de faire de la visioconférence
  • Reep.io : Pour faire du transfert de fichier via WebRTC
  • Hello : L’outil de visio conf de Mozilla intégré à Firefox
  • Jocly : Des jeux, des jeux et encore des jeux !
  • Love Hotel : Une expérience de France Télévision
  • Gruveo : Pour faire de la visio conf
  • Wimi : Un outil de travail collaboratif
  • ShareDrop : Transfert de fichiers
  • Nutty : Partage de terminal dans Chrome
  • Watsh.tv : Une expérience d’échange autour de vidéos
  • PeerCDN : Un réseau de distribution de contenu en p2p fermé, car racheté par Yahoo!
  • Streamroot : Un autre CDN WebRTC

tumblr_inline_n6m3795FDR1spb66d

Un truc à savoir quand même, c’est que WebRTC n’est pas encore supporté par tous les navigateurs… WebRTC est fonctionnel sur Opera, Chrome (23+), Firefox (22+) ainsi que les navigateurs par défaut d’Android et iOS.

talky_WebRTC_Scorecard

Globalement, WebRTC présente de nombreux avantages. Déjà la vidéo est de meilleure qualité qu’avec Flash. Les temps de connexion et la latence sont aussi réduits puisqu’utilisant JavaScript, les Websockets et HTML5 (natifs au navigateur).

Les services qui utilisent WebRTC peuvent maintenant remplacer le logiciel fermé Skype ou tous les services en ligne utilisant Flash. Pour ça, l’initiative HELLO de Firefox (jusqu’à 2 personnes en simultannée) est intéressante, car elle se veut totalement ouverte, utilisable et implémentable par tous.

Firefox-Hello_Beta35

WebRTC permet un bénéfice énorme pour tout ce qui est solutions de travail collaboratif tout en un. Par exemple, l’outil gratuit AirTime de la solution de travail collaboratif Wimi, permet de se voir et de discuter tous ensemble (jusqu’à 4 participants), en travaillant sur un même document ou en partageant son écran.

Les possibilités d’intégration sont illimitées et vont bien au-delà de la simple visio-conférence. Et c’est super pratique, car contrairement à d’autres solutions pro, grâce au WebRTC tout se passe dans le navigateur et il n’y a rien à installer en plus.

airtimex3touched

Envie de vous y mettre ? Voici un petit tuto qui vous expliquera simplement comment réaliser votre première application utilisant WebRTC.

Vous trouverez aussi des tas de démos balayant l’ensemble des possibilités de WebRTC en vous rendant sur cette page.


Les articles du moment