SlideShare a Scribd company logo
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
Defining 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 modification
• 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
ありがとうございます !

More Related Content

Viewers also liked

ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
mganeko
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
mganeko
 
HoloLens x Graphics 入門
HoloLens x Graphics 入門HoloLens x Graphics 入門
HoloLens x Graphics 入門
hecomi
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browser
mganeko
 
ヘルペス脳炎の治療
ヘルペス脳炎の治療ヘルペス脳炎の治療
ヘルペス脳炎の治療
Shungo Yamamoto
 
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
 
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!
Giancarlo Fornei
 
入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる
Masayuki Sakamoto
 
Tomcatx performance-tuning
Tomcatx performance-tuningTomcatx performance-tuning
Tomcatx performance-tuning
Vladimir Khokhryakov
 
Why Smart Brands use Characters
Why Smart Brands use CharactersWhy Smart Brands use Characters
Why Smart Brands use Characters
BizSmart Select
 
ドローン農業最前線
ドローン農業最前線ドローン農業最前線
ドローン農業最前線
tetsuya furukawa
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
Ryan Blue
 
Dolor en rn
Dolor en rnDolor en rn
Dolor en rn
Marco Rivera
 
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
Wes McKinney
 
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
Carmen Brion
 
Si案件でGo言語を使ってみた!
Si案件でGo言語を使ってみた!Si案件でGo言語を使ってみた!
Si案件でGo言語を使ってみた!
Koichiro Nishijima
 
Protocolo de estado epileptico
Protocolo de estado epilepticoProtocolo de estado epileptico
Protocolo de estado epileptico
David Barreto
 
Designing in the Open
Designing in the OpenDesigning in the Open
Designing in the Open
Mark Uraine
 
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
Manohar Prasad, PgMP®, PMP®, PMI-ACP®, CAL®, ACC®, CSP®
 
Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話
Moriyoshi Koizumi
 

Viewers also liked (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をカンストさせる話
 

Similar to Appear.in premium walkthrough

Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
Daniel Zivkovic
 
Emperors new clothes_jab
Emperors new clothes_jabEmperors new clothes_jab
Emperors new clothes_jab
kevinjohngallagher
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
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
 
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
Eric Proegler
 
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
PINT Inc
 
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
 
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
Steve Poole
 
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
 
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)
kevinjohngallagher
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
Steve Pember
 
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
Steve Pember
 
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
120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
Achievers Tech
 
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
Grant M Howe
 
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...
C24 Technologies
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving Microservices
Steve Pember
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into Overdrive
Todd Palino
 
devops, microservices, and platforms, oh my!
devops, microservices, and platforms, oh my!devops, microservices, and platforms, oh my!
devops, microservices, and platforms, oh my!
Andrew Shafer
 
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!
VMware Tanzu
 

Similar to 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 - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
 
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
 
devops, microservices, and platforms, oh my!
devops, microservices, and platforms, oh my!devops, microservices, and platforms, oh my!
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!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
 

Recently uploaded

Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
APNIC
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
thezot
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
APNIC
 

Recently uploaded (12)

Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
 

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. Defining 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 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?
  • 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 modification • 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 first prototype to first 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