WebRTC.... GWT & in-browser computation. Alberto Mancini, Francesca Tosi JooinK.com

Similar documents
Building A Self-Hosted WebRTC Project

Technological Educational Institute of Crete School of Applied Technology Department of Informatics Engineering

Version 2.8. Released 30 September 2015

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

webrtc and XMPP Philipp Hancke, XMPP Summit 2013

A Hybrid Visualization System for Molecular Models

1st TF-WebRTC meeting. Uninett WebRTC activities Stefan Otto Paris

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Crosswalk: build world class hybrid mobile apps

HTML5 the new. standard for Interactive Web

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Wildix WebRTC Kite & MCU Videoconference. Quick Start Guide

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

Integration of WebRTC with SIP Current Trends

Pwning Intranets with HTML5

An Oracle White Paper January Delivering Enterprise-Class Communications with WebRTC

Contact Centers and the Voice-Enabled Web. Peter J. Cornelius

Web Conferencing: It should be easy THE REASONS WHY IT IS NOT AND THE PATHS TO OVERCOME THE CHALLENGES.

Step into the Future: HTML5 and its Impact on SSL VPNs

Tree topology networks in WebRTC

Bridging the Gap: from a Web App to a Mobile Device App

A Case for SIP in JavaScript

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

How To Write A Web Server In Javascript

The Next Leap in JavaScript Performance

Performance analysis of topologies for Web-based Real-Time Communication (WebRTC)

Deepak Patil (Technical Director) iasys Technologies Pvt. Ltd.

Secured Web Oriented Video Conferencing System Using Web RTC Technology

Coding for Desktop and Mobile with HTML5 and Java EE 7

Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen

Learning HTML5 Game Programming

Open Source Open Possibilities. Vellamo. System Level Benchmarking October Open Source Open Possibilities PAGE 1

Trends in HTML5. Matt Spencer UI & Browser Marketing Manager

Achieving the Promise of WebRTC for Pervasive Communications

Firefox for Android. Reviewer s Guide. Contact us: press@mozilla.com

Learn to Compose and Utilise GWT

To ensure you have the appropriate equipment and settings please review the following: Software and Hardware Recommendations.

FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

Development of a videoconference application with speech recognition features using HTML5 APIs

HTML5 and Device APIs for Automotive: Is it time to power Infotainment and Car Portal Applications with Web Technologies?

RIA Technologies Comparison

All You Can Eat Realtime

WebRTC Conference & Expo The Big Picture & Keynotes Highlights

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

RTC:engine. WebRTC SOLUTION SIPWISE AND DEUTSCHE TELEKOM / TLABS ANNOUNCE COOPERATION FOR THE

ANDROID APP DEVELOPMENT: AN INTRODUCTION CSCI /19/14 HANNAH MILLER


Outline. 1.! Development Platforms for Multimedia Programming!

Multimedia Transport Protocols for WebRTC

A FRAMEWORK FOR ONLINE SPATIO-TEMPORAL DATA VISUALIZATION BASED ON HTML5

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Progressive Enhancement With GQuery and GWT. Ray Cromwell

Trends in Developing and Publishing Content: How HTML5 and Mobile Change the Game

WebRTC: Why and How? FRAFOS GmbH. FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

Service Providers and WebRTC

HTML5 & Friends. And How They Change A Developer s Life

SYST35300 Hybrid Mobile Application Development

Intel XDK для разработки кросс-платформенных мобильных приложений

Secured Web Oriented Videoconferencing System For Educational Purposes Using WebRTC Technology

Parallel Web Programming

Research on HTML5 in Web Development

HTML5 - Key Feature of Responsive Web Design

Modern Web Development From Angle Brackets to Web Sockets

The Development Manager s Quick Guide to HTML5

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

Bringing Your C/C++ Game to the Web via Emscripten. Vladimir Vukićević

Making the Most of Existing Public Web Development Frameworks WEB04

WebRTC. Is Real-Time Headed for the Big Time?

Web Enabling Solution for Windows Desktop Applications. White Paper

Web Based 3D Visualization for COMSOL Multiphysics

ACORD. Lync 2013 Web-app Install Guide

FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

TDAQ Analytics Dashboard

Differences between HTML and HTML 5

GÉANT: Delivering Global Real-Time Video Communication Services

How To Create A Flood Simulator For A Web Browser (For Free)

HTML5 Features on Tizen. Wonsuk Lee, Samsung Electronics

Android In The Cloud: A New PaaS Computing Platform

WebRTC in ecommerce. Brent Kelly President & Principal Analyst Kelcor

Towards Augmented Reality Applications in a Mobile Web Context

Créez les interfaces du futur avec les APIs d aujourd hui. Thursday, October 18, 12

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Getting more out of Matplotlib with GR

Mobile Performance: for excellent User Experience

Dialogic PowerMedia Extended Media Server (XMS) RESTful Web Applications Using Google Web Toolkit and the Atmosphere Project.

Transcription:

WebRTC... GWT & in-browser computation Alberto Mancini, Francesca Tosi JooinK.com

WebRTC Plug-in free realtime communication WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. source: webrtc.org

WebRTC Just another JS API or WebRTC is a new front in the long war for an open and unencumbered web Brendan Eich (Mozilla CTO and inventor of JavaScript)?

Browser Piercing a Javascript Application cannot access the filesystem and then FileAPI open f/d socket connections and then WebSockets use graphics accelerator and then WebGL span multiple threads and then WebWorkers

Browser Piercing a Javascript Application cannot acquire audio and video and then WebRTC communicate P2P and then WebRTC

WebRTC across platforms Chrome (mobile too) Firefox (mobile too) Opera Native Java and Obj-C

WebRTC JS-API Acquiring video and audio navigator.getusermedia(constraints, successcallback, errorcallback);

WebRTC JS-API Acquiring video and audio navigator.getusermedia(constraints, successcallback, errorcallback);

WebRTC JS-API Constraints Controls the contents of the MediaStream Media type, resolution, frame rate var constraints = {video: true}; video: { mandatory: {... }, optional [{... }] }

WebRTC JS-API Constraints Controls the contents of the MediaStream Media type, resolution, frame rate var constraints = {video: true}; video: { mandatory: { chromemediasource: screen }, optional [{... }] }

WebRTC JS-API Acquiring video and audio navigator.getusermedia(constraints, successcallback, errorcallback);

WebRTC JS-API errorcallback function errorcallback(error) { console.log("error: ", error); } ;-)

WebRTC JS-API Acquiring video and audio navigator.getusermedia(constraints, successcallback, errorcallback);

WebRTC JS-API successcallback function successcallback(stream) {... } stream: MediaStream; a flux of audio- or video-related data.

WebRTC JS-API successcallback function successcallback(stream) { var video =... video.src = window.url.createobjecturl(stream); } (W3C File API)

WebRTC JS-API full sample var constraints = {video: true}; function successcallback(stream) { var video = document.queryselector("video"); video.src = window.url.createobjecturl(stream); } function errorcallback(error) { console.log("navigator.getusermedia error: ", error); } navigator.getusermedia(constraints, successcallback, errorcallback);

WebRTC JS-API RTCPeerConnection getusermedia + RTCPeerConnection

WebRTC JS-API RTCDataChannel Bidirectional communication of arbitrary data low latency API similar to WebSockets

RTCPeerConnection sample pc = new RTCPeerConnection(null); pc.onaddstream = gotremotestream; pc.addstream(localstream); pc.createoffer(gotoffer); function gotoffer(desc) { pc.setlocaldescription(desc); sendoffer(desc); } function gotanswer(desc) { pc.setremotedescription(desc); } function gotremotestream(e) { attachmediastream(remotevideo, e.stream); }

RTCPeerConnection

RTCPeerConnection

RTCPeerConnection

STUN

TURN

WebRTC made easy... Video chat: SimpleWebRTC easyrtc webrtc.io Peer-to-peer data: PeerJS Sharefest

Our target getusermedia: gives us real time stream from the cam we can draw the <video/> into a <canvas/> from the canvas we can extract pixel data getimagedata() and then elaborate.

Computing in the browser goals - Almost native performance - Manage complex algorithms and applications on the browser our approach - javascript as a target language (GWT) - hand written optimized pieces of code

GWT GWT Web Toolkit - java to javascript (optimizing) compiler - emulated jre - widget set - develop in java and execute in javascript

JooinK s WebRTC sample Sample http://picshare.jooink.com Demo

PicShare Tecnologies WebGL for 3D graphics WebRTC for MediaSteams ImgUR for pictures store AppEngine to store indices GWT as a glue

FOSS gwt-nyartoolkit.googlecode.com gwt-webgl.googlecode.com The strategy: compile a java-lib with GWT into javascript

What s next Challanges real-time on mobile apps real world recognition: computer vision (BoofCV)

What s next Our approach use TypedArrays everywhere offload computation to the graphic accelerator through WebGL help the JIT compiler/optimizer with asm.js

References http://io13webrtc.appspot.com/#1 (where we got inspiration and most of the pictures) http://www.youtube.com/watch?v=p2hzzkd2a40 http://www.webrtc.org (spec)

That s all folks!!! Francesca Tosi francesca@jooink.com Alberto Mancini alberto@jooink.com

Markers - use at picshare.jooink. com