SlideShare a Scribd company logo
1 of 34
Download to read offline
Janus Client-Side
Dr Alex Gouaillard
CoSMo Software
WARNING !
2
● This is a pineapple-free presentation. No pineapple has been used during
the making of this presentation, and no pizza was tortured nor coerced to
have an indecent relationship with a pineapple!
WARNING !
3
● This is a pineapple-free presentation. No pineapple has been used during
the making of this presentation, and no pizza was tortured nor coerced to
have an indecent relationship with a pineapple!
● This is a VoIP-free presentation! The words Kamailio, FreeSwitch, and
Asterisk will have no part in this presentation. If this hurts your feelings, or
your (religious) beliefs, …. C’est la vie!
We are CoSMo
We used to cure cancer with ML and AI (ten years ago),and then webrtc came along.
4
We are CoSMo
● Based in Singapour (HQ), Manila, France, Madrid and L.A. (streaming)
● Multiple open-source collaborators
○ Google,
○ Apple,
○ Xyrsis,
○ Meteecho,
○ ...
● Gift economy:Contributions
to standards and testing
○ W3C
○ IETF
○ IMTC
○ AOMedia
5
We Love (C++) WebRTC, C, ASM, codecs, and testing
Which makes us very popular because nobody else do.
● Contribution to Open-Source
○ KITE (With Google, Used by Apple and others)
○ No-code fuzzing
○ E2EME (PERC, SFrame)
○ H264 simulcast
● Ongoing Open-Source
○ H.265 HW accelerated (with INTEL and Apple) => working, being tested by A, prep for upstream
○ Real-time AV1 => Proposed to AOM, to be presented at board meeting sep 25th
○ Media Transport / Web Transport / Datagram on QUIC => working impl. On top of picoQuic
● Non-open source research
○ Narval
○ Real-Time Server Side Ad-Insertion
○ Real-Time Digital Forensic Watermaking of Video Media
6
We are CoSMo
● Free Testing results and white papers for the community at large
● IETF HAckathons open to all (including commercial non open-source media
servers).
7
W3C TPAC 2019 - WPT.kite
8
W3C TPAC 2019 - WPT.kite
9
We have our own Media Server ...
10
We still love Janus!
● Video Conferencing vs Streaming
● Hybrid ? (webinar, conference, courses, …..)
● IoT? => 100% Janus
● Legacy?
○ VoIP => 100% Janus
○ Streaming (RTMP, HLS, MPEG-DASH, ….)
The fact that the Janus team participate to IETF, is so knowledgeable, and
answers so fast makes the difference for us.
11
Client-side, server-side, PaaS and operation
Need to Collaborate
12
The WebRTC A-Team(s)
10 years ago, a crack student unit was sent to PhD courses by a European court
for WebRTC, a technology they didn’t write. These men promptly graduated from
maximum security universities to the Napoli and Singapore Underground.
Today, still wanted by their government-paid past teachers, they survive as
WebRTC consultants.
If you have a WebRTC problem, if no one else can help, and if you can find them,
maybe you can hire… the WebRTC A-Team.
13
The WebRTC A-Team(s)
14
15
Note:
Only real Rockstar:
Lorenzo Miniero
There is more to webrtc than p2p
There is more to webrtc than media server
0. Minimum viable SYSTEM:
● 1 Client app (web app in chrome)
● 1 server
1. Real Media Infrastructure:
● Load balancing
● Auto-scaling
● As many client types as possible
● Metrics
● ICE servers
2. Platform as a Service:
● Authentification
● Accounts, Tenants management
● Payment
● Recording, Ad, Watermarking, ...
ANNEX: Tooling:
● Unit testing
● Interop testing
● CI/CL
● Load Testing 16
There is more to webrtc than p2p
There is more to webrtc than media server
0. Minimum viable SYSTEM:
● 1 Client app (web app in chrome)
● 1 server
1. Real Media Infrastructure:
● Load balancing
● Auto-scaling
● As many client types as possible
● Metrics
● ICE servers
2. Platform as a Service:
● Authentification
● Accounts, Tenants management
● Payment
● Recording, Ad, Watermarking, ...
ANNEX: Tooling:
● Unit testing
● Interop testing
● CI/CL
● Load Testing 17
Let’s dive! Libwebrtc is easy
You want to add a video codec?
Just slide it in the encoder part of the code.
Easy right … ?
18
Let’s dive! Libwebrtc is easy
Well, wait,
You need the decoder too,
And the rtcp feedback loop …. 19
Let’s dive! Libwebrtc is easy
+ JSEP, + SRTP, +ICE, ...
20
As a Product maintainer …
I do not want to deal with fetching, building, or
validating libWebRTC!
I want to link against external / system libWebRTC
○ More Options
■ Additional Codecs, E2EE, OpenSSL instead of BoringSSL
○ pre-built
■ Architectures (x86_64, arm64), compilers
■ Release only, No source code, Artefact Factory
○ validated
■ Google Unit Tests, End-to-end testing, Dashboard
○ packaged
■ relocatable, Installable, Usable without DevEnv
○ “Importable” in other DevEnvs
■ CMake package, Toolchains (android!)
I want to rebase / update easily
○ Commit and branch exact Versioning of binaries
○ Migration guides / scripts
21
Unit Testing 1/4
22
Unit Testing 2/4
23
Unit Testing 3/4
24
Unit Testing 4/4
25
CoSMo Add-On(s) to Janus Janus
Server
SFU
Qt Desk. &
Mobile
Client
Electron
Desktop
Client
Signal
lib
Web
RTC
lib
Web
RTCFull
Custom
+
E2E
Encryp
lib
Web
RTC
OBS-Studio
Signal
lib
Web
RTC
Signal
WebRTC – Qt
Wrappers
26
27
Java/ obj-c
Wrapper
C++ API
arm
C++ API
x64
libWebRTC Build Types
custom build options
E2EE
OpenSSL 1.1g
Watermarking
Additional Codecs
G.729
VP9 SVC
Medooze
Jitsi
Janus
Web App
React Native
App
(iOS/android)
OBS-Studio
Qt App
Desktop
M
obile
&
IoT
IoT
Electron
App
Browsers
Chrome
Firefox
Safari
Edgium
Native
Mobile
Java API
C++ API
obj-c API
Swift API
Millicast
Raspberry Pi
TizenOS
Native Flutter
Mobile App
69
28
People come at it from all different angles: Web First
1. Most people Starts with a web app in Chrome
2. Extending to more browser is already
Challenge in itself even if it’s getting better
(see next slide)
3. Then people want native, desktop or mobile,
With minimum extra effort. It means reusing
JS code (signalling, UI/UX, logic) The usual suspects:
● React-native (mobile) => needs libwebrtc
● Electron (Desktop)
29
2018 ~ 2019 - WPT.fyi: many more passing tests
30
People come at it from all different angles: Native First
1. Many people are mobile only
2. Most of those use libwebrtc for the media
Stack. Compilation can be tricky.
3. Then people want native, desktop or mobile,
With minimum extra effort. It means reusing
Native code (signalling, UI/UX, logic).
No usual suspect outside of full default apps
31
We had a dream !
1. Start with web app for simplicity
2. Reuse JS signalling APi and logic in native app to reduce code duplication
3. Except for JS, No binding (java, obj-C, ….),
4. Single source code (ASM/C/C++) for mobile and native !
5. Professional cross-platform UI framework
6. Professional cross-platform Build/Test/Report tools
And someone gave us QT (+ cmake)!
32
Dreams do come true!
It just takes more sweat than you think.
1. Build system, QtCreator
2. Thread model,
3. Memory Model,
4. Garbage Collection,
5. JS reuse,
a. QML auto-binding
b. Strings / QStrings
6. Capturer (Desktop/App capture)
7. Rendering (Image Adaptation, OnFrame callback)
8. Websocket (QtWebsocket subprotocol support limitation)
33
34

More Related Content

What's hot

What's hot (20)

Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
 
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeWEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
 
Janus: an open source and general purpose WebRTC (gateway) server
Janus: an open source and general purpose WebRTC (gateway) serverJanus: an open source and general purpose WebRTC (gateway) server
Janus: an open source and general purpose WebRTC (gateway) server
 
Quality Assurance for WebRTC Services
Quality Assurance for WebRTC ServicesQuality Assurance for WebRTC Services
Quality Assurance for WebRTC Services
 
Janus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmJanus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup Stockholm
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 
Deploying WebRTC in a low-latency streaming service
Deploying WebRTC in a low-latency streaming serviceDeploying WebRTC in a low-latency streaming service
Deploying WebRTC in a low-latency streaming service
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco Strategy
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
WebRTC Live Q&A and Screen Capture session 3
WebRTC Live Q&A and Screen Capture session 3WebRTC Live Q&A and Screen Capture session 3
WebRTC Live Q&A and Screen Capture session 3
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmIETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11
 

Similar to Janus conf'19: janus client side

web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meetingweb-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
Jan Meijer
 
IoT em tempo real com Firebase e JavaScript
IoT em tempo real com Firebase e JavaScriptIoT em tempo real com Firebase e JavaScript
IoT em tempo real com Firebase e JavaScript
Henri Cavalcante
 
An hour with WebRTC FIC UDC
An hour with WebRTC FIC UDCAn hour with WebRTC FIC UDC
An hour with WebRTC FIC UDC
Quobis
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
Ron Munitz
 

Similar to Janus conf'19: janus client side (20)

web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meetingweb-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
IoT em tempo real com Firebase e JavaScript
IoT em tempo real com Firebase e JavaScriptIoT em tempo real com Firebase e JavaScript
IoT em tempo real com Firebase e JavaScript
 
IoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devices
IoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devicesIoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devices
IoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devices
 
Native vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile applicationNative vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile application
 
Building web apps for a multiscreen world
Building web apps for a multiscreen worldBuilding web apps for a multiscreen world
Building web apps for a multiscreen world
 
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdfUC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
 
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
 
Webinar - Analyzing Video
Webinar - Analyzing VideoWebinar - Analyzing Video
Webinar - Analyzing Video
 
WebRTC: The Big Debate - I Say Shut and Build Something!
WebRTC: The Big Debate - I Say Shut and Build Something!WebRTC: The Big Debate - I Say Shut and Build Something!
WebRTC: The Big Debate - I Say Shut and Build Something!
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 
An hour with WebRTC FIC UDC
An hour with WebRTC FIC UDCAn hour with WebRTC FIC UDC
An hour with WebRTC FIC UDC
 
Grossum Software Outsourcing
Grossum Software OutsourcingGrossum Software Outsourcing
Grossum Software Outsourcing
 
Microsoft Skype for Business and the quest for legacy video interoperability
Microsoft Skype for Business and the quest for legacy video interoperabilityMicrosoft Skype for Business and the quest for legacy video interoperability
Microsoft Skype for Business and the quest for legacy video interoperability
 
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
 
Using Technology to Make People More Powerful
Using Technology to Make People More PowerfulUsing Technology to Make People More Powerful
Using Technology to Make People More Powerful
 
SFScon18 - Roberto Innocenti - Open Hardware PowerPC Notebook disclose the mo...
SFScon18 - Roberto Innocenti - Open Hardware PowerPC Notebook disclose the mo...SFScon18 - Roberto Innocenti - Open Hardware PowerPC Notebook disclose the mo...
SFScon18 - Roberto Innocenti - Open Hardware PowerPC Notebook disclose the mo...
 
JHipster & blueprint 02-07-2019 - casablanca jug
JHipster & blueprint 02-07-2019 - casablanca jugJHipster & blueprint 02-07-2019 - casablanca jug
JHipster & blueprint 02-07-2019 - casablanca jug
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
 
ASFWS 2013 - Cryptocat: récents défis en faisant la cryptographie plus facile...
ASFWS 2013 - Cryptocat: récents défis en faisant la cryptographie plus facile...ASFWS 2013 - Cryptocat: récents défis en faisant la cryptographie plus facile...
ASFWS 2013 - Cryptocat: récents défis en faisant la cryptographie plus facile...
 

More from Alexandre Gouaillard

Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Alexandre Gouaillard
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Alexandre Gouaillard
 

More from Alexandre Gouaillard (17)

Streaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streamingStreaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streaming
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
 
2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語
 
WebRTC Object Model API - Transceivers
WebRTC Object Model API - TransceiversWebRTC Object Model API - Transceivers
WebRTC Object Model API - Transceivers
 
2015 Q4 webrtc standards update
2015 Q4 webrtc standards update2015 Q4 webrtc standards update
2015 Q4 webrtc standards update
 
overview-peerconnection-lifetime
overview-peerconnection-lifetimeoverview-peerconnection-lifetime
overview-peerconnection-lifetime
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
Testing and packaging WebRTC Stack
Testing and packaging WebRTC StackTesting and packaging WebRTC Stack
Testing and packaging WebRTC Stack
 
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
 
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SFWebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
 
WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
 

Recently uploaded

Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 

Recently uploaded (20)

Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
22-prompt engineering noted slide shown.pdf
22-prompt engineering noted slide shown.pdf22-prompt engineering noted slide shown.pdf
22-prompt engineering noted slide shown.pdf
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 

Janus conf'19: janus client side

  • 1. Janus Client-Side Dr Alex Gouaillard CoSMo Software
  • 2. WARNING ! 2 ● This is a pineapple-free presentation. No pineapple has been used during the making of this presentation, and no pizza was tortured nor coerced to have an indecent relationship with a pineapple!
  • 3. WARNING ! 3 ● This is a pineapple-free presentation. No pineapple has been used during the making of this presentation, and no pizza was tortured nor coerced to have an indecent relationship with a pineapple! ● This is a VoIP-free presentation! The words Kamailio, FreeSwitch, and Asterisk will have no part in this presentation. If this hurts your feelings, or your (religious) beliefs, …. C’est la vie!
  • 4. We are CoSMo We used to cure cancer with ML and AI (ten years ago),and then webrtc came along. 4
  • 5. We are CoSMo ● Based in Singapour (HQ), Manila, France, Madrid and L.A. (streaming) ● Multiple open-source collaborators ○ Google, ○ Apple, ○ Xyrsis, ○ Meteecho, ○ ... ● Gift economy:Contributions to standards and testing ○ W3C ○ IETF ○ IMTC ○ AOMedia 5
  • 6. We Love (C++) WebRTC, C, ASM, codecs, and testing Which makes us very popular because nobody else do. ● Contribution to Open-Source ○ KITE (With Google, Used by Apple and others) ○ No-code fuzzing ○ E2EME (PERC, SFrame) ○ H264 simulcast ● Ongoing Open-Source ○ H.265 HW accelerated (with INTEL and Apple) => working, being tested by A, prep for upstream ○ Real-time AV1 => Proposed to AOM, to be presented at board meeting sep 25th ○ Media Transport / Web Transport / Datagram on QUIC => working impl. On top of picoQuic ● Non-open source research ○ Narval ○ Real-Time Server Side Ad-Insertion ○ Real-Time Digital Forensic Watermaking of Video Media 6
  • 7. We are CoSMo ● Free Testing results and white papers for the community at large ● IETF HAckathons open to all (including commercial non open-source media servers). 7
  • 8. W3C TPAC 2019 - WPT.kite 8
  • 9. W3C TPAC 2019 - WPT.kite 9
  • 10. We have our own Media Server ... 10
  • 11. We still love Janus! ● Video Conferencing vs Streaming ● Hybrid ? (webinar, conference, courses, …..) ● IoT? => 100% Janus ● Legacy? ○ VoIP => 100% Janus ○ Streaming (RTMP, HLS, MPEG-DASH, ….) The fact that the Janus team participate to IETF, is so knowledgeable, and answers so fast makes the difference for us. 11
  • 12. Client-side, server-side, PaaS and operation Need to Collaborate 12
  • 13. The WebRTC A-Team(s) 10 years ago, a crack student unit was sent to PhD courses by a European court for WebRTC, a technology they didn’t write. These men promptly graduated from maximum security universities to the Napoli and Singapore Underground. Today, still wanted by their government-paid past teachers, they survive as WebRTC consultants. If you have a WebRTC problem, if no one else can help, and if you can find them, maybe you can hire… the WebRTC A-Team. 13
  • 16. There is more to webrtc than p2p There is more to webrtc than media server 0. Minimum viable SYSTEM: ● 1 Client app (web app in chrome) ● 1 server 1. Real Media Infrastructure: ● Load balancing ● Auto-scaling ● As many client types as possible ● Metrics ● ICE servers 2. Platform as a Service: ● Authentification ● Accounts, Tenants management ● Payment ● Recording, Ad, Watermarking, ... ANNEX: Tooling: ● Unit testing ● Interop testing ● CI/CL ● Load Testing 16
  • 17. There is more to webrtc than p2p There is more to webrtc than media server 0. Minimum viable SYSTEM: ● 1 Client app (web app in chrome) ● 1 server 1. Real Media Infrastructure: ● Load balancing ● Auto-scaling ● As many client types as possible ● Metrics ● ICE servers 2. Platform as a Service: ● Authentification ● Accounts, Tenants management ● Payment ● Recording, Ad, Watermarking, ... ANNEX: Tooling: ● Unit testing ● Interop testing ● CI/CL ● Load Testing 17
  • 18. Let’s dive! Libwebrtc is easy You want to add a video codec? Just slide it in the encoder part of the code. Easy right … ? 18
  • 19. Let’s dive! Libwebrtc is easy Well, wait, You need the decoder too, And the rtcp feedback loop …. 19
  • 20. Let’s dive! Libwebrtc is easy + JSEP, + SRTP, +ICE, ... 20
  • 21. As a Product maintainer … I do not want to deal with fetching, building, or validating libWebRTC! I want to link against external / system libWebRTC ○ More Options ■ Additional Codecs, E2EE, OpenSSL instead of BoringSSL ○ pre-built ■ Architectures (x86_64, arm64), compilers ■ Release only, No source code, Artefact Factory ○ validated ■ Google Unit Tests, End-to-end testing, Dashboard ○ packaged ■ relocatable, Installable, Usable without DevEnv ○ “Importable” in other DevEnvs ■ CMake package, Toolchains (android!) I want to rebase / update easily ○ Commit and branch exact Versioning of binaries ○ Migration guides / scripts 21
  • 26. CoSMo Add-On(s) to Janus Janus Server SFU Qt Desk. & Mobile Client Electron Desktop Client Signal lib Web RTC lib Web RTCFull Custom + E2E Encryp lib Web RTC OBS-Studio Signal lib Web RTC Signal WebRTC – Qt Wrappers 26
  • 27. 27
  • 28. Java/ obj-c Wrapper C++ API arm C++ API x64 libWebRTC Build Types custom build options E2EE OpenSSL 1.1g Watermarking Additional Codecs G.729 VP9 SVC Medooze Jitsi Janus Web App React Native App (iOS/android) OBS-Studio Qt App Desktop M obile & IoT IoT Electron App Browsers Chrome Firefox Safari Edgium Native Mobile Java API C++ API obj-c API Swift API Millicast Raspberry Pi TizenOS Native Flutter Mobile App 69 28
  • 29. People come at it from all different angles: Web First 1. Most people Starts with a web app in Chrome 2. Extending to more browser is already Challenge in itself even if it’s getting better (see next slide) 3. Then people want native, desktop or mobile, With minimum extra effort. It means reusing JS code (signalling, UI/UX, logic) The usual suspects: ● React-native (mobile) => needs libwebrtc ● Electron (Desktop) 29
  • 30. 2018 ~ 2019 - WPT.fyi: many more passing tests 30
  • 31. People come at it from all different angles: Native First 1. Many people are mobile only 2. Most of those use libwebrtc for the media Stack. Compilation can be tricky. 3. Then people want native, desktop or mobile, With minimum extra effort. It means reusing Native code (signalling, UI/UX, logic). No usual suspect outside of full default apps 31
  • 32. We had a dream ! 1. Start with web app for simplicity 2. Reuse JS signalling APi and logic in native app to reduce code duplication 3. Except for JS, No binding (java, obj-C, ….), 4. Single source code (ASM/C/C++) for mobile and native ! 5. Professional cross-platform UI framework 6. Professional cross-platform Build/Test/Report tools And someone gave us QT (+ cmake)! 32
  • 33. Dreams do come true! It just takes more sweat than you think. 1. Build system, QtCreator 2. Thread model, 3. Memory Model, 4. Garbage Collection, 5. JS reuse, a. QML auto-binding b. Strings / QStrings 6. Capturer (Desktop/App capture) 7. Rendering (Image Adaptation, OnFrame callback) 8. Websocket (QtWebsocket subprotocol support limitation) 33
  • 34. 34