SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
The making of appear.in
premium
Dag-Inge Aas
Tech lead
What is appear.in?
• Web-based video chat with
no download, signup or login
• An internal, independent
startup in Telenor
• Team of 20 people from 8
nationalities
Agenda
• How we started creating premium
• A little about how we work
• How we went about solving our problem
• What we ended up with
appear.in/awesome-cat
The beginning
Monetizing appear.in
• Had lots of requests from people wanting to pay
• We wanted to prove to ourselves that we were worth paying for
• Some clear needs emerged
• More people in the room
• Customization options
• Better screen sharing
• Improved quality
appear.in/awesome-cat
Companies wanted to use us
• We saw a lot of standup rooms
• Bigger corporations wanted to buy enterprise
licenses
• Support for town hall meetings,

broadcasting scenarios
Dening the problem we want to solve
What are the users problems?
• Users want to pay for appear.in, but can’t
• There isn’t enough room for the entire team in a
single appear.in room
• The quality is unreliable and unacceptable

in group calls
appear.in/awesome-cat
Users want to pay for appear.in
• Luxury problem when you get these requests
• User won’t pay out of the good of their hearts
There isn’t enough room for the entire team
• A clear need for 8+ calls
• How many is many? When does a meeting stop being a
meeting and start being a broadcast?
• Are the people spectators

or participants?
• We can’t solve this without solving

our third problem
Quality is unreliable and unacceptable
in group calls
• The core issue we were facing
• No use adding more people, if we couldn’t solve this
• No use charging money, if we couldn’t

solve this
appear.in/awesome-cat
What is quality?
• Quality can be any number of things, is it the number
of pixels of video you send? A function of latency and
jitter?
• We define latency as the experience the user has
during a conversation.
• Does it flow naturally, does it feel real? Does it work as
if you are in the same room?
What is bad quality?
• Latency in itself isn’t such a huge issue, the human
brain is amazing
• Variable latency is killer, the brain can’t adjust, social
clues break down
• So-so, mm, ja. We depend on small clues to keep
conversation flowing
Solving the problem
We are peer-to-peer based
• We believed peer-to-peer was
the superior technology
• Really wanted to solve the
problem without going for the
“obvious”
How can we improve quality?
• The Internet is inherently variable
• Jitter saves us most of the time, but when it gets too
bad, things start to fail
• Chrome estimates bandwidth by saturating the link,
leading to packet loss
• PeerConnections compete in a full-mesh network
RTCStats
• https://github.com/opentok/rtcstats-server
• Queries on getStats() and creates aggregates. Currently at
500 features per peer connection.
• Syncs to redshift for querying big datasets
• https://medium.com/the-making-of-appear-in/webrtc-
connection-times-and-the-power-of-playing-around-with-
data-ab11312737e9#.vrqtr3mlq
RTCStats
Network link conditioner to the rescue
• Find the limits in a controlled environment
• Not always enough, link conditioner is too static, we
are looking for big events, not constant losses
Idea: Controlling bandwidth
• b=AS:<bitrate>
• Can be set dynamically on the receiving end
• Set bitrate based on number of people in the room
Partial success
• We were able to set the bandwidth, and even network-
constrained endpoints worked. After 256kbit/s it was
more or less unusable for video
• Supersize looked bad, screen sharing ruined displayed
resolution-based bitrate modication
• Huge realisation when we compared our results to an
SFU-based model
Solution: Selective forwarding
• Support for more people in rooms
• Handles supersize
• Lower CPU requirement
• Better stability and flow in group calls
• It costs a lot more money
Our home-grown SFU
• Written in JavaScript with some C-bindings
• First working version was only 3000 lines
• Globally distributed, uses full-mesh for
discoverability of streams on different hosts
• Multiple servers in each AWS region
Advantages of building your own
• Full control and understanding of the component
• Can build custom scaling, simulcast rules
• Simulcast based on both network and displayed
resolution
• “Control your own core technology”
Disadvantages of building your own
• You have to build it all yourself
• There is a whole bunch of issues you didn’t think
about beforehand
• Learning how to count
• From first prototype to first production use took us
10 months
Architecture
• Each SFU provides signalling
• Every user connects to their closest SFU using latency-
based DNS (sfu.appear.in)
• Global mesh network for peer discovery on publish/
subscribe
• SFU requests stream, forwarded through Amazon network
to closest exit node
AWS internal network
eu-west-1 us-east-1
SFU 1 SFU 2
BobAlice
sfu.appear.in -> 84.0.0.1 sfu.appear.in -> 78.0.0.1
Premium
appear.in/awesome-cat
appear.in premium
Upgrade your room to get extra features:
• Up to 12 people in conversation
• Better quality and stability
• Improved screen sharing
• Branding of room


$12 per room/month
appear.in/awesome-cat
Try for free!
Use coupon code:
WEBRTC-JP
for one month free
ありがとうございます !

Mais conteĂşdo relacionado

Destaque

Destaque (20)

ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 
HoloLens x Graphics 入門
HoloLens x Graphics 入門HoloLens x Graphics 入門
HoloLens x Graphics 入門
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browser
 
ヘルペス脳炎の治療
ヘルペス脳炎の治療ヘルペス脳炎の治療
ヘルペス脳炎の治療
 
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
 
Autostima in 140 caratteri: la recensione a 5 stelle di Egidio su Amazon!
Autostima in 140 caratteri: la recensione a 5 stelle di Egidio su Amazon!Autostima in 140 caratteri: la recensione a 5 stelle di Egidio su Amazon!
Autostima in 140 caratteri: la recensione a 5 stelle di Egidio su Amazon!
 
入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる
 
Tomcatx performance-tuning
Tomcatx performance-tuningTomcatx performance-tuning
Tomcatx performance-tuning
 
Why Smart Brands use Characters
Why Smart Brands use CharactersWhy Smart Brands use Characters
Why Smart Brands use Characters
 
ドローン農業最前線
ドローン農業最前線ドローン農業最前線
ドローン農業最前線
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Dolor en rn
Dolor en rnDolor en rn
Dolor en rn
 
Memory Interoperability in Analytics and Machine Learning
Memory Interoperability in Analytics and Machine LearningMemory Interoperability in Analytics and Machine Learning
Memory Interoperability in Analytics and Machine Learning
 
How to work with the JTBD framework and why UXers need to be using it
How to work with the JTBD framework and why UXers need to be using itHow to work with the JTBD framework and why UXers need to be using it
How to work with the JTBD framework and why UXers need to be using it
 
Si案件でGo言語を使ってみた!
Si案件でGo言語を使ってみた!Si案件でGo言語を使ってみた!
Si案件でGo言語を使ってみた!
 
Protocolo de estado epileptico
Protocolo de estado epilepticoProtocolo de estado epileptico
Protocolo de estado epileptico
 
Designing in the Open
Designing in the OpenDesigning in the Open
Designing in the Open
 
Digital Marketing Project, e-marketing Project, Internet Marketing Project
Digital Marketing Project, e-marketing Project, Internet Marketing ProjectDigital Marketing Project, e-marketing Project, Internet Marketing Project
Digital Marketing Project, e-marketing Project, Internet Marketing Project
 
Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話
 

Semelhante a Appear.in premium walkthrough

Emperors new clothes_jab
Emperors new clothes_jabEmperors new clothes_jab
Emperors new clothes_jab
kevinjohngallagher
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
kevinjohngallagher
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
kevinjohngallagher
 
The challenges of live events scalability
The challenges of live events scalabilityThe challenges of live events scalability
The challenges of live events scalability
Guy Tomer
 
Can you process 10 trillion logs per day software architecture conference 2015
Can you process 10 trillion logs per day software architecture conference 2015Can you process 10 trillion logs per day software architecture conference 2015
Can you process 10 trillion logs per day software architecture conference 2015
Sumo Logic
 

Semelhante a Appear.in premium walkthrough (20)

Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Emperors new clothes_jab
Emperors new clothes_jabEmperors new clothes_jab
Emperors new clothes_jab
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New Contexts
 
Rapid Evolution of Web Dev? aka Talking About The Web
Rapid Evolution of Web Dev? aka Talking About The WebRapid Evolution of Web Dev? aka Talking About The Web
Rapid Evolution of Web Dev? aka Talking About The Web
 
The challenges of live events scalability
The challenges of live events scalabilityThe challenges of live events scalability
The challenges of live events scalability
 
Jax Devops 2017 Succeeding in the Cloud – the guidebook of Fail
Jax Devops 2017  Succeeding in the Cloud – the guidebook of FailJax Devops 2017  Succeeding in the Cloud – the guidebook of Fail
Jax Devops 2017 Succeeding in the Cloud – the guidebook of Fail
 
Can you process 10 trillion logs per day software architecture conference 2015
Can you process 10 trillion logs per day software architecture conference 2015Can you process 10 trillion logs per day software architecture conference 2015
Can you process 10 trillion logs per day software architecture conference 2015
 
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices Environment
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
Sage Summit 2012: Cloud Computing for Accountants
Sage Summit 2012: Cloud Computing for AccountantsSage Summit 2012: Cloud Computing for Accountants
Sage Summit 2012: Cloud Computing for Accountants
 
Microservices to FastData in the Enterprise with Spring: John Davies at Sprin...
Microservices to FastData in the Enterprise with Spring: John Davies at Sprin...Microservices to FastData in the Enterprise with Spring: John Davies at Sprin...
Microservices to FastData in the Enterprise with Spring: John Davies at Sprin...
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving Microservices
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into Overdrive
 
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
 
devops, microservices, and platforms, oh my!
devops, microservices, and platforms, oh my!devops, microservices, and platforms, oh my!
devops, microservices, and platforms, oh my!
 

Último

Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Chandigarh Call girls 9053900678 Call girls in Chandigarh
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
SUHANI PANDEY
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
imonikaupta
 

Último (20)

Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 

Appear.in premium walkthrough

  • 1. The making of appear.in premium Dag-Inge Aas Tech lead
  • 2. What is appear.in? • Web-based video chat with no download, signup or login • An internal, independent startup in Telenor • Team of 20 people from 8 nationalities
  • 3. Agenda • How we started creating premium • A little about how we work • How we went about solving our problem • What we ended up with appear.in/awesome-cat
  • 5. Monetizing appear.in • Had lots of requests from people wanting to pay • We wanted to prove to ourselves that we were worth paying for • Some clear needs emerged • More people in the room • Customization options • Better screen sharing • Improved quality appear.in/awesome-cat
  • 6. Companies wanted to use us • We saw a lot of standup rooms • Bigger corporations wanted to buy enterprise licenses • Support for town hall meetings,
 broadcasting scenarios
  • 7. Dening the problem we want to solve
  • 8. What are the users problems? • Users want to pay for appear.in, but can’t • There isn’t enough room for the entire team in a single appear.in room • The quality is unreliable and unacceptable
 in group calls appear.in/awesome-cat
  • 9. Users want to pay for appear.in • Luxury problem when you get these requests • User won’t pay out of the good of their hearts
  • 10. There isn’t enough room for the entire team • A clear need for 8+ calls • How many is many? When does a meeting stop being a meeting and start being a broadcast? • Are the people spectators
 or participants? • We can’t solve this without solving
 our third problem
  • 11. Quality is unreliable and unacceptable in group calls • The core issue we were facing • No use adding more people, if we couldn’t solve this • No use charging money, if we couldn’t
 solve this appear.in/awesome-cat
  • 12. What is quality? • Quality can be any number of things, is it the number of pixels of video you send? A function of latency and jitter? • We dene latency as the experience the user has during a conversation. • Does it flow naturally, does it feel real? Does it work as if you are in the same room?
  • 13. What is bad quality? • Latency in itself isn’t such a huge issue, the human brain is amazing • Variable latency is killer, the brain can’t adjust, social clues break down • So-so, mm, ja. We depend on small clues to keep conversation flowing
  • 15. We are peer-to-peer based • We believed peer-to-peer was the superior technology • Really wanted to solve the problem without going for the “obvious”
  • 16. How can we improve quality? • The Internet is inherently variable • Jitter saves us most of the time, but when it gets too bad, things start to fail • Chrome estimates bandwidth by saturating the link, leading to packet loss • PeerConnections compete in a full-mesh network
  • 17. RTCStats • https://github.com/opentok/rtcstats-server • Queries on getStats() and creates aggregates. Currently at 500 features per peer connection. • Syncs to redshift for querying big datasets • https://medium.com/the-making-of-appear-in/webrtc- connection-times-and-the-power-of-playing-around-with- data-ab11312737e9#.vrqtr3mlq
  • 19. Network link conditioner to the rescue • Find the limits in a controlled environment • Not always enough, link conditioner is too static, we are looking for big events, not constant losses
  • 20. Idea: Controlling bandwidth • b=AS:<bitrate> • Can be set dynamically on the receiving end • Set bitrate based on number of people in the room
  • 21.
  • 22. Partial success • We were able to set the bandwidth, and even network- constrained endpoints worked. After 256kbit/s it was more or less unusable for video • Supersize looked bad, screen sharing ruined displayed resolution-based bitrate modication • Huge realisation when we compared our results to an SFU-based model
  • 23. Solution: Selective forwarding • Support for more people in rooms • Handles supersize • Lower CPU requirement • Better stability and flow in group calls • It costs a lot more money
  • 24.
  • 25. Our home-grown SFU • Written in JavaScript with some C-bindings • First working version was only 3000 lines • Globally distributed, uses full-mesh for discoverability of streams on different hosts • Multiple servers in each AWS region
  • 26. Advantages of building your own • Full control and understanding of the component • Can build custom scaling, simulcast rules • Simulcast based on both network and displayed resolution • “Control your own core technology”
  • 27. Disadvantages of building your own • You have to build it all yourself • There is a whole bunch of issues you didn’t think about beforehand • Learning how to count • From rst prototype to rst production use took us 10 months
  • 28. Architecture • Each SFU provides signalling • Every user connects to their closest SFU using latency- based DNS (sfu.appear.in) • Global mesh network for peer discovery on publish/ subscribe • SFU requests stream, forwarded through Amazon network to closest exit node
  • 29. AWS internal network eu-west-1 us-east-1 SFU 1 SFU 2 BobAlice sfu.appear.in -> 84.0.0.1 sfu.appear.in -> 78.0.0.1
  • 31. appear.in/awesome-cat appear.in premium Upgrade your room to get extra features: • Up to 12 people in conversation • Better quality and stability • Improved screen sharing • Branding of room 
 $12 per room/month
  • 32. appear.in/awesome-cat Try for free! Use coupon code: WEBRTC-JP for one month free