Upload
vladimir-beloborodov
View
708
Download
3
Tags:
Embed Size (px)
Citation preview
WEBRTC ON MOBILE DEVICES:CHALLENGES AND OPPORTUNITIES
Vladimir Beloborodov
Technical Manager / CTO at Mera Software Services
+ =
“WebRTC”
WebRTC is
a technology
for peer-to-peer exchange
of media (audio, video) and data
between web*-clients
in (near) real time
* Note: “web” here is in a broader sense than just browsers and in-browser apps
“Web” as in “web-browser”?
Yes! But more than that…
Data
“Neophyte View” on WebRTC
Data
Source of photo: https://www.flickr.com/photos/jon_ovington/4315834126
“With WebRTCI can build my own Skype!”
Amir Zmora@AmirZmora
If I Hear of Another New “Cool” #WebRTCTalking Heads Service I’m Going to Screamhttp://bit.ly/1KuKCnZ
Original tweet: https://twitter.com/AmirZmora/status/602817737728126977
• Contact Centers
• Enterprise Telecom
• Carriers / OTT
• Communication featuresin consumer electronics
Telecom: A “No-Brainer” Vertical
“Telecom View” on WebRTC
Data
Shared Screen*
* Screen sharing is coming to the WebRTC standard
“ ommunication”
can be more than just
“plain Telecom”
• Human-to-Human
• Human-Machine Interactions
• Machine-to-Machine (?)Why not?
Noise
Data
Note that WebRTCcan also be a great matchfor many other new andemerging technologies…
Data
Natural Language
Processing
“Communication-Centric” Model Changes…
19th century – 2000s:
“Communication as a product”
2000s – 2010s:
“Communication as a service”
…Into “Domain/Problem-Centric” Model
2010s – … :
“Communication as a feature”,
“Communication as a function”
“Communication as a Function”
• Context-awareness and context-preservation
• Instant availability (in the given context)
• Integration with/into problem-specific tools
• Selection of communication options/channels
• Personalization (user preferences/profiles)
• Integration with the surrounding environment
Remote Support. “Assistant-as-App”.
• Personal consulting and coaching
• “Post-training” performance support
• “Amateur support”. Situational assistance.
• Augmented-reality-based guidance
https://www.vida.com/
Suggested reading: “Why ‘Assistant-As-App’ Might Be the Next Big Tech Trend”https://www.linkedin.com/pulse/why-assistant-as-app-might-next-big-tech-trend-nir-eyal
http://www.onato.com/projects/vex.html
VEX ~ RemoteInsurance Appraisals
“Users can video chat with the appraiser so that appraisals can be quickly and effectively performed from the office. Video sessions are archived for possible liability disputes. Hi resolution photos can be taken by the appraiser at any time to ensure all details are captured.”
Social Engagement. Accessibility.
• Public reporting and journalism
• Elderly support services
• Sign-language translation services
• Assistance to blind people
http://www.bemyeyes.org/
Peer-to-Peer Interactions. CDN.
• Remote control services and functions
• “Robotic telepresence” and “avatars”
• Content delivery services
• Secured peer-to-peer transactions
http://bem.tv/
https://streamium.io/
http://www.doublerobotics.com/
Caveat: Their SDK only used WebRTC voice and video. Data channel anyone?
Time forquickdemo…
Try it!
http://blog.uppersideconferences.com/award-winners-webrtc-2014-conference-expo/
Data Channel award
“Communication as a Function”
…makes perfect sense in many desktop-based scenarios
Side-note: Desktop goes “mobile” too…
Source: http://thenextweb.com/mobile/2012/02/21/ubuntu-for-android-could-turn-your-phone-into-a-powerful-desktop-computer/
Source: https://www-ssl.intel.com/content/www/us/en/compute-stick/intel-compute-stick.html
Source: https://www.apple.com/macbook/
“Communication as a Function”
…can be done with several Telecom or Web technologies
Native or hybrid application logic Web-application logic
WebRTC API(s)in some other programming language(s)
Implementation of the “Web” API part of WebRTC
This API is standardized by the WEBRTC group in W3C(including interactions with other parts of HTML5)
Implementation-specific API
Implementation of the “RTC” mechanisms of WebRTC
These mechanisms are standardized by the RTCWEB group in IETF(NAT traversal, media negotiation, mandatory codecs, and the like)
Underlying platform
• Enhanced ICE-based NAT Traversal• Secure media and data transport• Common subset of media codecs• Signaling over existing peer connection
• and more
“Communication as a Function”
+ =
“Communication as a Function”
+ =
WebRTC on Mobile? Choices, choices…
Web AppNative
Mobile App
Hybrid Mobile App
WebRTC-related Considerations
• WebRTC libraries for native apps
• WebRTC direct support in WebView
• WebRTC in embedded browser
• WebRTC in 3rd-party browser apps
Some General Considerations
• Native “look and feel” on target platforms
• Application responsiveness. Usage of gestures.
• Native platform capabilities. Storage options.
• Support of external H/W devices / accessories
• Access to local media sources and outputs
Some More Considerations
• End-customer preferences / requirements
• Support for prev. versions (platform / browser)
• Required skillset and dev tools
WebRTC Options on Android
Open-source libs• Google WebRTC• OpenWebRTC (Ericsson)
WebRTC in WebView Starting 5.0 “Lollipop”
Embedded browser Starting 5.0 (with Chrome) ++
3rd-party browsers Chrome, Firefox, “Bowser” *
* “Bowser”: https://getbowser.appspot.com/
++ Not guaranteed in case of vendor-customized Android firmwares
WebRTC Options on iOS
Open-source libs• Google WebRTC• OpenWebRTC (Ericsson)
WebRTC in WebView No native support
Embedded browser No
3rd-party browsers “Bowser” *
* “Bowser”: https://getbowser.appspot.com/
Google WebRTC
Ericsson OpenWebRTC
WebRTC Open-Source Implementations*
* Mozilla plans to “join the club” too, offering their Firefox WebRTC engine.* For ORTC, the ORTC project offers their own open-source prototype.
Diversity of H/W Platforms and Options
Preserve video proportions
UI and UX with WebRTC
One screen layout may not fit all
Device orientation affects bothUI layout and “camera layout”
Preview of local front camera normally “mirrors” the user
WebRTC App Behavior
Background mode considerations
“Wi-Fi only” / “Wi-Fi and Cellular”
Lighter comm. channel optionsfor narrow-bandwidth conditions
Handle “edge cases” and errors
Advanced and “hack-ish” topics
Codec ordering in SDP matters. Changing it may help, but you must know well what you do.
(Pre-)balance UX and system load with WebRTC constraints
Find out what codecs, if any, enjoyH/W acceleration on platform/lib
Hybrid Mobile Applications
A typical definition:
“Applications combining elements of bothnative applications and Web applications.”
How Well Can “Web” Play “Native”?
App / domain
logic and models App UI*
Performance-demandingfeatures and capabilities
* This may work great for certain apps and customers. Yet, generally, be careful.
JS-Hybrids: More Than One Approach
Approach Example dev options
Packaged web apps Microsoft ManifoldJS
“WebView UI” apps Cordova / PhoneGap
JS-based apps with“shared” native UI
NativeScript
JS-based apps with“per-platform” UIs
React Native
Source of photo: https://www.flickr.com/photos/befuddledsenses/2904000882
Between here and the horizon…
• WebRTC official standard (“WebRTC 1.0”)
• “Object RTC” (ORTC) and “WebRTC 1.1”
• Microsoft Edge with ORTC on board
• Screen sharing. Many other additions.
• WebAssembly + WebRTC
The Centaur icon is by EliRatus from the Noun Project.Other icons used in this presentation were made by Freepik from www.flaticon.com.
mera.com
@VladimirTechMan
linkedin.com/in/vladimirtechman
Thank you for your time and attention!
Vladimir BeloborodovTechnical Manager / CTO at Mera Software Services