Advertisement
Guest User

Untitled

a guest
Oct 30th, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.15 KB | None | 0 0
  1. Débuter avec l'API WebRTC
  2. =========================
  3.  
  4.  
  5. > WebRTC est un nouveau front dans la longue guerre pour un web ouvert et désencombré. <br>
  6. > [Brendan Eich](http://hacks.mozilla.org/2012/03/video-mobile-and-the-open-web/), Inventeur du langage JavaScript
  7.  
  8. Communication en temps réelle sans plugins
  9. ------------------------------------------
  10.  
  11. Imaginez un monde où votre téléphone, téléviseur et votre ordinateur peuvent tous communiquer sur une plateforme commune. Imaginez que ce pourrait être facile d'ajouter des appels vidéos et des échanges clients à clients de données dans votre application web. C'est la vision de WebRTC.
  12.  
  13.  
  14. Vous voulez essayer ? WebRTC est maintenant disponible dans Google Chrome, Opéra, Firefox et très prochainement Internet Explorer. Un bon endroit pour commencer est de démarrer la simple application de tchat vidéo à l'adresse [apprtc.appspot.com](apprtc.appspot.com).
  15.  
  16. - Ouvrez la page [http://apprtc.appspot.com/](http://apprtc.appspot.com/) depuis Google Chrome, Firefox ou encore Opéra.
  17. - Cliquez sur le bouton *autoriser* pour laisser l'application utiliser votre webcam.
  18. - Ouvrez l'URL affichée en bas de page dans un nouvel onglet ou, mieux encore, depuis un autre ordinateur.
  19.  
  20. Il y a une procédure pas à pas de cette application [plus bas](http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-simple) dans cet article.
  21.  
  22. Mise en route
  23. -------------
  24.  
  25. - Ayez un aperçu de WebRTC depuis la présentation I/O de Google (les slides sont disponibles [ici](http://io13webrtc.appspot.com/)) : <br>
  26. <iframe width="560" height="315" src="http://www.youtube.com/embed/p2HzZkd2A40" frameborder="0" allowfullscreen=""></iframe>
  27. - Si vous n'avez jamais utilisé la méthode *getUserMedia()*, allez voir [l'article de HTML5 Rocks](http://www.html5rocks.com/en/tutorials/getusermedia/intro/) sur le sujet et regardez le code source de la simple application à [simpl.info/gum](simpl.info/gum).
  28. - Get to grips with the RTCPeerConnection API by reading through the simple example below and the demo at simpl.info/pc, which implements WebRTC on a single web page.
  29. - Familiarisez vous avec l'API *RTCPeerConnection* en lisant le [le simple exemple suivant](http://www.html5rocks.com/en/tutorials/webrtc/basics/#simpleRTCPeerConnectionExample) et regardez la démo à l'adresse [http://www.simpl.info/pc](http://www.simpl.info/pc) qui implémente WebRTC sur une simple page web.
  30. - Apprenez en plus pour savoir comment WebRTC utilise les serveurs pour transférer des données, passer à travers les pares-feu et les réseaux NAT en lisant le coude source et les logs de la console depuis [http://apprtc.appspot.com/](http://apprtc.appspot.com/)
  31.  
  32.  
  33. **Vous pouvez encore aller directement dans notre [laboratoire de développement WebRTC](https://www.bitbucket.org/webrtc/codelab) : un guide étape par étape qui explique comment construire une application compléte de tchat vidéo, avec un simple transfert serveur. **
  34.  
  35. Une courte histoire de WebRTC
  36. -----------------------------
  37.  
  38. L'un des derniers défis majeurs pour le web est d'ajouter la communication humaine par la voix et la vidéo : la communication en temps réelle. (*Note du traducteur, RTC signifie Real Time Communication c'est à dire communication en temps réelle*). RTC devrait être aussi naturel dans une application web que d'entrer du texte dans un champ de texte. Sans cela, nous somme limité dans nos capacités à innover et développer de nouveaux moyens pour permettre aux gens d'interagir entre eux.
  39.  
  40.  
  41. Historiquement, RTC était limité et compliqué, il requérait des technologies audio et vidéo coûteuses, au niveau des licences ou du développement maison. Intégrer la technologie RTC avec le contenu existant, les données et services avaient été difficile et long à mettre en place, spécialement au niveau du web.
  42.  
  43.  
  44. Le tchat vidéo de Gmail devint populaire en 2008 et en 2011 Google introduisit Hangouts, qui utilisait les services Google Talk (comme le fait Gmail). Google a acheté GIPS, une compagnie qui a développé beaucoup de composantes requises pour RTC, comme des codecs audio ou encore des techniques de réduction de bruits de fond. Google a ensuite mis les technologies développées par GIPS en open source et engagait avec les organismes de normalisation concernés comme l'IETF ou encore le W3C pour obtenir un consensus de l'industrie. En mai 2011, Ericsson construit [la première implémentation de WebRTC](https://labs.ericsson.com/developer-community/blog/beyond-html5-peer-peer-conversational-video).
  45.  
  46.  
  47. WebRTC est maintenant implémenté dans les standards ouverts pour la communication en temps réelle, sans plugin vidéo, audio et communication de données. Le besoin est réel :
  48.  
  49. * Beaucoup de services utilisent déjà la communication en temps réelle mais requièrent un téléchargement, des applications natives ou encore des plugins. Cela inclus Skype, Facebook (qui utilise Skype) et Google Hangouts (qui utilise le plugin Google Talk).
  50. * Télécharger, installer et mettre à jour les plugins peuvent être difficiles, sources d'erreurs et ennuyeux.
  51. * Les plugins peuvent parfois être difficile à déployer, débugger, localiser les problèmes, tester et maintenant et requièrent des licences, une intégration complexe et une technologie coûteuse. C'est souvent difficile de persuader quelqu'un d'installer un plugin avant de visiter votre site !
  52.  
  53. Les principes qui ont guidés la réalisation du projet WebRTC sont que ses APIs douvent être open source, gratuite, standardisée, incluses dans les navigateurs web et plus efficace que les technologies existantes.
  54.  
  55. Où sommes nous maintenant ?
  56. ---------------------------
  57.  
  58. WebRTC implémente trois APIs :
  59.  
  60. * [MediaStream](http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-mediastream) (alias *getUserMedia*)
  61. * [RTCPeerConnection](http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-rtcpeerconnection)
  62. * [RTCDataChannel](http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-rtcdatachannel)
  63.  
  64. getUserMedia is available in Chrome, Opera and Firefox. Take a look at the cross-browser demo at [simpl.info/gum]() and Chris Wilson's amazing examples using getUserMedia as input for Web Audio.
  65.  
  66. **getUserMedia** est disponible sur Google Chrome, Opéra et Firefox (bientôt Internet Explorer). Faites un tour à la démonstration compatible tout navigateurs à l'adresse [simpl.info/gum](simpl.info/gum) et les [exemples fantastiques](http://webaudiodemos.appspot.com/) de Chris Wilson qui utilisent *getUserMedia* comme entrée pour l'audio web.
  67.  
  68.  
  69. RTCPeerConnection est disponible sur Chrome (versions bureau et mobile), Opéra (bureau et la dernière bêta mobile) et dans Firefox. A mot d'explication à propos du nom de l'API : après plusieurs intérations, RTCPeerConnection est aujourd'hui implémenté dans Chrome et Opéra comme webkitRTCPeerConnection et par Firefox comme étant mozRTCPeerConnection. Les autres noms et implémentations ont été dépréciés. Quand les processus de standardisation seront stables, les préfixes vont être supprimés. Il y a une application ultra simple de démonstration de l'implémentation Chromium de RTCPeerConnection à l'adresse [simpl.info/pc](simpl.info/pc) et une superbe application de tchat vidéo à l'adresse [apprtc.appspot.com](apprtc.appspot.com). Cette application utilise [adapter.js](https://apprtc.appspot.com/js/adapter.js), un shim JavaScript, maintenu par Google qui abstrait les différences entre les navigateurs ainsi que les changements de spécification.
  70.  
  71. **RTCDataChannel** est supporté par Chrome 25, Opéra 18, Firefox 22 et supérieur.
  72.  
  73.  
  74. La fonctionnalité WebRTC est disponible dans Internet Explorer par Google [Chrome Frame](https://groups.google.com/forum/#!topic/discuss-webrtc/tKoh1wrI8ig) et par skype (acquis par Microsoft en 2011 qui envisage de passer par WebRTC. Cette technologie a d'ailleurs été intégrée avec [WebKitGTK+](https://labs.ericsson.com/developer-community/blog/beyond-html5-conversational-voice-and-video-implemented-webkit-gtk) et les applications natives [Qt](http://www.youtube.com/watch?v=Vm5ebKWKNE8).
  75.  
  76. *Edit du traducteur : Microsoft a annoncé le support de WebRTC dans son navigateur : [http://blogs.msdn.com/b/ie/archive/2014/10/27/bringing-interoperable-real-time-communications-to-the-web.aspx](http://blogs.msdn.com/b/ie/archive/2014/10/27/bringing-interoperable-real-time-communications-to-the-web.aspx)*.
  77.  
  78. ### Un petit mot d'avertissement ###
  79.  
  80. Soyez attentifs sur le fait qu'une plateforme "supporte" WebRTC. le plus souvent, cela signifie qu'elle ne supporte seulement *getUserMedia* mais pas les autres composantes de WebRTC.
  81.  
  82. Ma première application WebRTC
  83. ------------------------------
  84.  
  85. Les applications WebRTC ont besoin de faire plusieurs choses :
  86.  
  87. * Obtenir un flux audio, vidéo ou un flux de données quelconque.
  88. * Connaitre les informations réseau telles les adresses IP, les ports utilisé et les échanger avec les autres clients WebRTC (les *peers*) pour activer la connexion même à travers les pare-feu et les réseaux NATs.
  89. * Coordonner les signaux pour reporter les erreurs, initialiser ou fermer les sessions de communication.
  90. * Échanger l'information des périphériques et du client, comme la résolution supportée par le client ou encore les codecs utilisés.
  91. * Communiquer les flux audio, vidéo ou de données.
  92.  
  93.  
  94. Pour obtenir et communiquer des flux de données, WebRTC implémente les APIs suivantes :
  95.  
  96. * [MediaStream ](https://dvcs.w3.org/hg/audio/raw-file/tip/streams/StreamProcessing.html): obtenir l'accès aux flux, comme la caméra ou le microphone de l'utilisateur.
  97. * [RTCPeerConnection ](http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcpeerconnection-interface): permettre les appels audio ou vidéo, avec des facilités pour le cryptage ou la gestion de la bande passante.
  98. * [RTCDataChannel ](http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcdatachannel): communication p2p de données génériques.
  99.  
  100. (Il y a une discussion détaillée des aspects réseaux et transition de données de WebRTC [ci-dessous](http://www.html5rocks.com/en/tutorials/webrtc/basics/#signaling)).
  101.  
  102. MediaStream (alias getUserMedia)
  103. --------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement