SlideShare uma empresa Scribd logo
1 de 101
Baixar para ler offline
Modelo	
  Híbrido	
  para	
  Transmissão	
  de	
  Vídeos
ao	
  Vivo	
  utilizando	
  Peer-­‐to-­‐Peer
http://bem.tv
Wednesday, May 7, 14
‣ Flávio Ribeiro
‣ Engenheiro de Software (Globo.com - Webmedia)
‣ Aluno de Mestrado/Pesquisador (TeleMídia Labs)
‣ @flavioribeiro
‣ http://flavioribeiro.com
Wednesday, May 7, 14
Agenda
‣ Motivação
‣ Background
‣ Pesquisa
‣ O que já foi feito?
‣ Conclusão eTrabalhos Futuros
‣ Referências
Wednesday, May 7, 14
Motivação
Wednesday, May 7, 14
‣ Crescimento da audiência na Internet & preferência dos usuários
por consumo de conteúdo de vídeo
Motivação
Wednesday, May 7, 14
‣ Crescimento da audiência na Internet & preferência dos usuários
por consumo de conteúdo de vídeo
Motivação
‣ Red Bull Stratos 2012
‣ 8 milhões usuários simultâneos
Wednesday, May 7, 14
Motivação
‣ Red Bull Stratos 2012
‣ 8 milhões usuários simultâneos
‣ FIFA Copa das Confederações 2013 para Brasileiros
‣ Quase meio milhão de usuários simultâneos
‣ Crescimento da audiência na Internet & preferência dos usuários
por consumo de conteúdo de vídeo
Wednesday, May 7, 14
Motivação
‣ Qualidade dosVídeos disponibilizados na internet cresce
exponencialmente
Wednesday, May 7, 14
Wednesday, May 7, 14
Motivação
‣ Qualidade dosVídeos disponibilizados na internet cresce
exponencialmente
700#
1200#
3500#
0#
1000#
2000#
3000#
4000#
2006#FIFA#World#Cup## 2010#FIFA#World#Cup## 2014#FIFA#World#Cup#
Maximum'Delivered'Bitrate'
Bitrate#in#Kbps#
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
‣ Escalabilidade: CDNs escalam com a adição de pontos de
presença (PoP’s)
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
‣ Escalabilidade: CDNs escalam com a adição de pontos de
presença (PoP’s)
‣ Custo: OYouTube gasta 1 milhão de dólares por dia!
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
‣ Escalabilidade: CDNs escalam com a adição de pontos de
presença (PoP’s)
‣ Custo: OYouTube gasta 1 milhão de dólares por dia!
‣ Qualidade da Experiência (QoE)
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
‣ Escalabilidade: CDNs escalam com a adição de pontos de
presença (PoP’s)
‣ Custo: OYouTube gasta 1 milhão de dólares por dia!
‣ Qualidade da Experiência (QoE)
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
‣ Escalabilidade: CDNs escalam com a adição de pontos de
presença (PoP’s)
‣ Custo: OYouTube gasta 1 milhão de dólares por dia!
‣ Qualidade da Experiência (QoE)
Motivação
Wednesday, May 7, 14
Rebuffers by Region and Telecom Carrier at Brazil. Globo.com, 2013.
Motivação
Wednesday, May 7, 14
‣ Content Delivery Networks
‣ Escalabilidade: CDNs escalam com a adição de pontos de
presença (PoP’s)
‣ Custo: OYouTube gasta 1 milhão de dólares por dia!
‣ Qualidade da Experiência (QoE)
Motivação
‣ “4 out of 5 users abandon a video if it rebuffers
during playback.” TubeMogul (December, 2009)
Wednesday, May 7, 14
Video Stream Quality Impacts Viewer Behavior: Inferring Causality Using Quasi-Experimental Designs,
KRISHNAN S. Shunmuga.A. IEEE/ACM Transactions on Networking. 2013.
Motivação
‣ StartupTime x Abandonment Rate
Wednesday, May 7, 14
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ RTMP x HTTP
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ RTMP x HTTP
HTTP versus RTMP:Which way to Go and Why?, Cisco Whitepaper (October, 2011)
Background
RTP/RTSP/RTMP HTTP-Based
Mostly on top of UDP On top of HTTP
Specialized Media Servers
Segmenter + Ordinary
Web Servers
Low Delay High Delay
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ RTMP x HTTP
Tempo Assistido mais usuários
na melhor
qualidade
Qualidade Média
Quality of Experience Report. Globo.com, 2013.
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
video está segmentado!
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
‣ HTTP Caching r
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
‣ HTTP Caching r
‣ Transparent Proxies r
Background
$ curl -I "http://hls.glbvid.com/new/tvg/tvg_264/
tvg_1372204662819_1372204662819_1219.ts" HTTP/1.1 200 OK
Server: nginx
Date:Wed, 26 Jun 2013 01:19:34 GMT
Content-Type: video/mp2t
Content-Length: 172584
Connection: keep-alive
Last-Modified:Wed, 26 Jun 2013 01:19:04 GMT Expires:Wed, 26 Jun 2013 01:24:14 GMT
Cache-Control: public
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
‣ HTTP Caching r
‣ Transparent Proxies r
‣ Delay Introduction s
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
‣ HTTP Dynamic Streaming (HDS) by Adobe
‣ HTTP Live Streaming (HLS) by Apple (IETF Draft)
‣ Smooth Streaming by Microsoft
‣ DASH by MPEG
Background
Wednesday, May 7, 14
‣ Protocolos de Streaming Multimídia
‣ Protocolo baseado em HTTP
‣ HTTP Dynamic Streaming (HDS) by Adobe
‣ HTTP Live Streaming (HLS) by Apple (IETF Draft)
‣ Smooth Streaming by Microsoft
‣ DASH by MPEG
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
Background
Wednesday, May 7, 14
Background
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
‣ P2P Puro
Wednesday, May 7, 14
Background
‣ Peer-to-Peer
‣ Conceito de Arquitetura de Sistemas Distribuídos
‣ P2P Híbrido
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ PPLive, PPStream, CoolStreaming, ZIGZAG,
PRIME,AnySee, HotStreaming, SplitStream,
Chunkspread, DirectedPush,TURIN, Octoshape
Background
Wednesday, May 7, 14
‣ Peer-to-Peer
‣ PPLive, PPStream, CoolStreaming, ZIGZAG,
PRIME,AnySee, HotStreaming, SplitStream,
Chunkspread, DirectedPush,TURIN, Octoshape
Background
Wednesday, May 7, 14
‣ WebRTC
Background
Wednesday, May 7, 14
‣ WebRTC
Background
Wednesday, May 7, 14
‣ WebRTC
Background
Wednesday, May 7, 14
‣ WebRTC
‣ PeerConnection API
‣ MediaStream API
‣ DataChannel API
Background
Wednesday, May 7, 14
‣ WebRTC
Background
Wednesday, May 7, 14
‣ WebRTC
Background
Wednesday, May 7, 14
Pesquisa
Wednesday, May 7, 14
“In p2p systems, the higher quantity of active peers,
the better delivery service works.
DUYEN HOA HA,A novel Hybrid CDN-P2P mechanism for Effective real-time media
streaming
Pesquisa
Wednesday, May 7, 14
“Data delivery is better in broadcast based systems (...),
but as the user volume for dynamic content increases,
internet scale search and data delivery using peer-to-peer
systems beats any broadcast based system.
KAVYA LAKSHMI SUDHEERA, Dynamic P2P Streaming Using Delaunay Edges
Pesquisa
Wednesday, May 7, 14
“Peer-assisted data sharing can reduce the network cost
by dramatically decreasing download bandwidth of
content servers up to 96%.
SEONGHO CHO, Playback Latency Reduction for Internet Live Video Services in CDN-P2P
Hybrid Architecture
Pesquisa
Wednesday, May 7, 14
‣ Propor Arquitetura P2P/CDN Híbrida para
Distribuição deVídeo aoVivo utilizando WebRTC
‣ Evita a necessidade da instalação de plugins de terceiros
‣ Usa os poderes do peer-to-peer para escoar os chunks de
vídeo entre os nós (usuários)
‣ Diminui o custo da transmissão
Pesquisa
Wednesday, May 7, 14
A Hybrid Peer-to-Peer/CDN Model for Live Video Distribution
Wednesday, May 7, 14
O que já foi feito?
Wednesday, May 7, 14
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
O que já foi feito?
Wednesday, May 7, 14
http://bem.tv/demo.html
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
O que já foi feito?
Wednesday, May 7, 14
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
O que já foi feito?
Wednesday, May 7, 14
205/44 246/49
157/115
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
O que já foi feito?
Wednesday, May 7, 14
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
‣ Conceito de “enxame” & matching de nós (usuários)
‣ Geolocalização + Provedor de Internet
http://server.bem.tv/room
O que já foi feito?
Wednesday, May 7, 14
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
‣ Conceito de “enxame” & matching de nós (usuários)
‣ Geolocalização + Provedor de Internet
O que já foi feito?
Wednesday, May 7, 14
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
‣ Conceito de “enxame” & matching de nós (usuários)
‣ Geolocalização + Provedor de Internet
O que já foi feito?
Wednesday, May 7, 14
‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming
(HLS) e WebRTC
‣ Conceito de “enxame” & matching de nós (usuários)
‣ Geolocalização + Provedor de Internet
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
‣ Protocolo minimalista de sinalização e troca de chunks
A
B
C
O que já foi feito?
Wednesday, May 7, 14
A
B
C
A needs chunk bbb_3.ts
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
checking if have bbb_3.ts
<A> DESIRE:bbb_3.ts
checking if have bbb_3.ts
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
have bbb_3.ts!
have bbb_3.ts!
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
choosing the best peer
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
C is the best!
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
<A-C> REQ:bbb_3.ts
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
<A-C> REQ:bbb_3.ts
<C-A> OFFER:bbb_3.ts:<blob>
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
<A-C> REQ:bbb_3.ts
<C-A> OFFER:bbb_3.ts:<blob>
A have chunk bbb_3.ts!
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
A
B
C
<A> DESIRE:bbb_3.ts
<B-A> DESACK:bbb_3.ts
<C-A> DESACK:bbb_3.ts
<A-C> REQ:bbb_3.ts
<C-A> OFFER:bbb_3.ts:<blob>
timeout? go to CDN
CDN
‣ Protocolo minimalista de sinalização e troca de chunks
O que já foi feito?
Wednesday, May 7, 14
O que já foi feito?
Wednesday, May 7, 14
‣ Primeiros Experimentos
‣ 10 Apple MacBooks White (2GB SDRAM)
‣ Mozila Firefox 27.1 (WebRTC compatible)
‣ Mesmo roteador Wi-Fi (10/100Mbps)
‣ Video
‣ Chunks com 5 segundos de duração
‣ 600 Kbps de bitrate (qualidade)
‣ CDN + Room Discoverer + P2P Signaling Server
‣ 1 server with 512MB of SDRAM em NY
O que já foi feito?
Wednesday, May 7, 14
‣ Primeiros Experimentos
O que já foi feito?
Wednesday, May 7, 14
‣ Resultado
O que já foi feito?
0"
20"
40"
60"
80"
100"
120"
140"
1" 3" 5" 7" 9" 11" 13" 15" 17" 19" 21" 23" 25" 27" 29" 31" 33" 35" 37" 39" 41" 43" 45" 47" 49" 51" 53" 55" 57" 59"
Requests'
Minute'
CDN.only'x'CDN.P2P'Requests'per'minute'
CDN/only" CDN/P2P"
Wednesday, May 7, 14
‣ Resultado
‣ CDN-only: 7457 requests para a CDN
‣ CDN-P2P: 4482 requests para a CDN
O que já foi feito?
Wednesday, May 7, 14
‣ Resultado
‣ CDN-only: 7457 requests para a CDN
‣ CDN-P2P: 4482 requests para a CDN
‣ Redução de 39.98%
O que já foi feito?
Wednesday, May 7, 14
Conclusão eTrabalhos Futuros
Wednesday, May 7, 14
‣ Nossa abordagem é promissora!
Conclusão eTrabalhos Futuros
Wednesday, May 7, 14
‣ Nossa abordagem é promissora!
‣ Melhorias:
‣ Convergência de Peers e Over Swarming
‣ Reputation, Partnership, Leader Election
‣ Protocolo de troca de chunks de vídeo
‣ Segurança do Conteúdo
‣ Poisoned Chunks
‣ DoS Starvation
Conclusão eTrabalhos Futuros
Wednesday, May 7, 14
http://bem.tv
http://github.com/flavioribeiro/bemtv
http://talentos.globo.com
http://opensource.globo.com
Wednesday, May 7, 14
http://bem.tv
http://github.com/flavioribeiro/bemtv
http://talentos.globo.com
http://opensource.globo.com
Wednesday, May 7, 14
‣ Dynamic Clustering in Delaunay-Based P2P NetworkedVirtual Environments. Matteo
Varvello. http://www.eurecom.fr/fr/publication/2682/download/rs-publi-2682.pdf
‣ GoDel: Delaunay Overlays in P2P Networks via Gossip. Ranieri Baraglia. http://hpc.isti.cnr.it/
~dazzi/pdf/Baraglia12P2Pgodel.pdf
References
Wednesday, May 7, 14
‣ Dynamic P2P Streaming Using Delaunay Edges. Kavya Lakshmi Sudheera. http://
www.ijera.com/papers/Vol3_issue6/FF36968971.pdf
‣ Optimized P2P Streaming Services with DelaunayTriangulation protocol.T. Hemanth. http://
rspublication.com/ijeted/jan13/1.pdf
‣ TreeP:ATree Based P2P Network Architecture. Benoit Hudzia. http://arxiv.org/pdf/cs/
0608118.pdf
‣ Mesh or Multiple-Tree:A Comparative Study of Live P2P Streaming Approaches. Nazanin
Magharei. http://mirage.cs.uoregon.edu/pub/infocom07-treemesh.pdf
‣ How Netflix Architects for Survival. Jeremy Edberg. http://www.infoq.com/presentations/
netflix-architecture-resilience
References
Wednesday, May 7, 14
‣ http://gigaom.com/2009/12/10/4-out-of-5-viewers-leave-if-a-
stream-buffers-once/
‣ https://people.cs.umass.edu/~ramesh/Site/HOME_files/imc208-
krishnan.pdf
‣ http://www.ccs.neu.edu/home/cbw/4700/papers/p225.pdf
‣ http://www.bth.se/fou/cuppsats.nsf/all/
16d53c7e6e725222c1257b01003764f3/$file/
BTH2012Guniganti.pdf
‣ http://www.cisco.com/c/en/us/products/collateral/video/as5100-
series-media-processor/white_paper_c11-675935.pdf
‣ http://tools.ietf.org/html/draft-ietf-ppsp-survey-06#page-6
References
Wednesday, May 7, 14
References
•Berkvist,A., Burnett, D., Jennings, C. Narayanan,A. (2011) “WebRTC 1.0: Real-Time Communication Between Browsers”.Working Draft.
•Bronzino, F. Gaeta, R. Grangetto, M. Pau, G. (2012) “An Adaptive Hybrid CDN/P2P Solution for Content Delivery Networks”.VCIP, page 1-6, IEEE.
•Cho, S., Cho, J., Shin, S. (2010) “Playback Latency Reduction for Internet LiveVideo Services in CDN-P2P Hybrid Architecture”. 2013 IEEE International
Conference on Communications.
•Huang, C.,Wang,A., Li, J., Ross, K. (2008) “Understanding hybrid CDN-P2P: why limelight needs its own Red Swoosh”. Proceedings of the 18th International
Workshop on Network and Operating Systems Support for Digital Audio andVideo.
•Katz,T. (2012) “Mission Complete: Red Bull Stratos lands safely back on Earth”. http://goo.gl/bX31hl, accessed in March 2014.
•Kovacevic,A., Graffi, K., Pussep, K., Steinmetz, R. (2009) “Underlay awareness in P2P systems:Techniques and challenges”. IEEE Symposium on Parallel &
Distributed Processing.
•Kutten, S., Panduragan, G., Peleg, D., Robinson, P.,Trehan,A. (2013) “On the complexity of universal leader election”. Proceedings of the ACM symposium on
Principles of distributed computing.
•Li, B., Xie, S., Qu,Y., Keung, G.Y. (2008) “Inside the New CoolStreaming: Principles, Measurements and Performance Implications”. IEEE 27th Conference on
Computer Communications.
•Medina-López, C., Naranjo, J.A.M., García-Ortiz, J. P., Casado, L. G., González-Ruiz,V. (2013) “Execution of the P2PSP protocol in parallel environments”. XXIV
Jornadas de Paralelismo. Madrid, Spain.
•Naylor,A. (2013) “WebRTC is almost here, and it will change the web”. http://goo.gl/IgxF33, accessed in March 2014.
•Nordyke, K, (2014) “HBO Go Crashes During ‘True Detective’ Finale”. http://goo.gl/zixUr7, accessed in March 2014.
•Parmar, H. andThornburg, M. (2012) “Adobe’s RealTime Messaging Protocol”. http://goo.gl/cGMWPI, accessed in March 2014.
•Rosenberg. J, Mahy, R., Matthews, P.Wing, D. (2008) “SessionTraversal Utilities for NAT (STUN)”. IEFT Proposed Standard.
•Roussopolous, M., Baker, M., Rosenthal D. S. H., GiuliT. J., Maniatis, P., Mogul, P. (2004) “2 P2P or Not 2 P2P?”.Third International Workshop, IPTPS 2004.
•Sandoval, G. (2013) “. Netflix Chief Product Officer: expect 4k Streaming within a year or two”. http://goo.gl/F4S133, accessed in March 2014.
•Spangler,T. (2009) “YouTube May Lose $470 Million in 2009:Analysts”. http://goo.gl/oNgAzY, accessed in March 2014.
•Xiong, L. and Liu, L. (2004) “PeerTrust: Supporting Reputation-BasedTrust for Peer-to-Peer Electronic Communities”. IEEETransactions on Knowledge and
Data Engineering.
•Yuste, L. and Melvin, H. (2012) “A Protocol Review for IPTV and WebTV Multimedia Delivery Systems”. Scientific Letters of the University of Zilina, vol 14.
•Zimmerman,A., (2014) “ABC Promised to Livestream the Oscars andTotally Failed”. http://goo.gl/sTNb7d, accessed in March 2014.
Wednesday, May 7, 14

Mais conteúdo relacionado

Semelhante a Modelo Híbrido P2P para Transmissão de Vídeos ao Vivo

Gestão de Ambientes Internet Webseriados
Gestão de Ambientes Internet   WebseriadosGestão de Ambientes Internet   Webseriados
Gestão de Ambientes Internet WebseriadosDurval Amorim
 
IPv6 para Gestores de TI
IPv6 para Gestores de TIIPv6 para Gestores de TI
IPv6 para Gestores de TICIJUN
 
Arquitetura de dados em stream
Arquitetura de dados em streamArquitetura de dados em stream
Arquitetura de dados em streamMatheus Vill
 
Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014Tania Andrea
 
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14Getup Cloud
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Renato Groff
 
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...WordCamp Floripa
 
Apresentação de defesa final de estágio
Apresentação de defesa final de estágioApresentação de defesa final de estágio
Apresentação de defesa final de estágioLeonardo Flores
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Jose Augusto Carvalho
 
Aplicações Web Realtime
Aplicações Web RealtimeAplicações Web Realtime
Aplicações Web RealtimeGabriel Gularte
 
Collaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlay
Collaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlayCollaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlay
Collaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlayCiro Cavani
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Renato Groff
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilJose Augusto Carvalho
 
Selenium renato groffe + milton camara - mvp conf latam 2019
Selenium  renato groffe + milton camara - mvp conf latam 2019Selenium  renato groffe + milton camara - mvp conf latam 2019
Selenium renato groffe + milton camara - mvp conf latam 2019Milton Camara Gomes
 
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019Renato Groff
 

Semelhante a Modelo Híbrido P2P para Transmissão de Vídeos ao Vivo (20)

Gestão de Ambientes Internet Webseriados
Gestão de Ambientes Internet   WebseriadosGestão de Ambientes Internet   Webseriados
Gestão de Ambientes Internet Webseriados
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
IPv6 para Gestores de TI
IPv6 para Gestores de TIIPv6 para Gestores de TI
IPv6 para Gestores de TI
 
Webseriados
WebseriadosWebseriados
Webseriados
 
Microserviços com Spring Boot
Microserviços com Spring BootMicroserviços com Spring Boot
Microserviços com Spring Boot
 
Arquitetura de dados em stream
Arquitetura de dados em streamArquitetura de dados em stream
Arquitetura de dados em stream
 
Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014
 
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
 
Como funciona a internet
Como funciona a internetComo funciona a internet
Como funciona a internet
 
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
 
Apresentação de defesa final de estágio
Apresentação de defesa final de estágioApresentação de defesa final de estágio
Apresentação de defesa final de estágio
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)
 
Consultoria WinVideo
Consultoria WinVideoConsultoria WinVideo
Consultoria WinVideo
 
Aplicações Web Realtime
Aplicações Web RealtimeAplicações Web Realtime
Aplicações Web Realtime
 
Collaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlay
Collaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlayCollaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlay
Collaborative Filtering por Fatores Latentes - Recomendação para o GlobosatPlay
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágil
 
Selenium renato groffe + milton camara - mvp conf latam 2019
Selenium  renato groffe + milton camara - mvp conf latam 2019Selenium  renato groffe + milton camara - mvp conf latam 2019
Selenium renato groffe + milton camara - mvp conf latam 2019
 
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
 

Mais de Flávio Ribeiro

Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingFlávio Ribeiro
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesFlávio Ribeiro
 
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxDesenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxFlávio Ribeiro
 
stewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasstewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasFlávio Ribeiro
 
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeTest Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeFlávio Ribeiro
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Linux em Sistemas Embarcados
Linux em Sistemas EmbarcadosLinux em Sistemas Embarcados
Linux em Sistemas EmbarcadosFlávio Ribeiro
 

Mais de Flávio Ribeiro (15)

Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media Encoding
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York Times
 
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxDesenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
 
stewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasstewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomalias
 
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeTest Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Linux em Sistemas Embarcados
Linux em Sistemas EmbarcadosLinux em Sistemas Embarcados
Linux em Sistemas Embarcados
 

Modelo Híbrido P2P para Transmissão de Vídeos ao Vivo

  • 1. Modelo  Híbrido  para  Transmissão  de  Vídeos ao  Vivo  utilizando  Peer-­‐to-­‐Peer http://bem.tv Wednesday, May 7, 14
  • 2. ‣ Flávio Ribeiro ‣ Engenheiro de Software (Globo.com - Webmedia) ‣ Aluno de Mestrado/Pesquisador (TeleMídia Labs) ‣ @flavioribeiro ‣ http://flavioribeiro.com Wednesday, May 7, 14
  • 3. Agenda ‣ Motivação ‣ Background ‣ Pesquisa ‣ O que já foi feito? ‣ Conclusão eTrabalhos Futuros ‣ Referências Wednesday, May 7, 14
  • 5. ‣ Crescimento da audiência na Internet & preferência dos usuários por consumo de conteúdo de vídeo Motivação Wednesday, May 7, 14
  • 6. ‣ Crescimento da audiência na Internet & preferência dos usuários por consumo de conteúdo de vídeo Motivação ‣ Red Bull Stratos 2012 ‣ 8 milhões usuários simultâneos Wednesday, May 7, 14
  • 7. Motivação ‣ Red Bull Stratos 2012 ‣ 8 milhões usuários simultâneos ‣ FIFA Copa das Confederações 2013 para Brasileiros ‣ Quase meio milhão de usuários simultâneos ‣ Crescimento da audiência na Internet & preferência dos usuários por consumo de conteúdo de vídeo Wednesday, May 7, 14
  • 8. Motivação ‣ Qualidade dosVídeos disponibilizados na internet cresce exponencialmente Wednesday, May 7, 14
  • 10. Motivação ‣ Qualidade dosVídeos disponibilizados na internet cresce exponencialmente 700# 1200# 3500# 0# 1000# 2000# 3000# 4000# 2006#FIFA#World#Cup## 2010#FIFA#World#Cup## 2014#FIFA#World#Cup# Maximum'Delivered'Bitrate' Bitrate#in#Kbps# Wednesday, May 7, 14
  • 11. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 12. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 13. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 14. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 15. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 16. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 17. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 18. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 19. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 20. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 21. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 22. ‣ Content Delivery Networks Motivação Wednesday, May 7, 14
  • 23. ‣ Content Delivery Networks ‣ Escalabilidade: CDNs escalam com a adição de pontos de presença (PoP’s) Motivação Wednesday, May 7, 14
  • 24. ‣ Content Delivery Networks ‣ Escalabilidade: CDNs escalam com a adição de pontos de presença (PoP’s) ‣ Custo: OYouTube gasta 1 milhão de dólares por dia! Motivação Wednesday, May 7, 14
  • 25. ‣ Content Delivery Networks ‣ Escalabilidade: CDNs escalam com a adição de pontos de presença (PoP’s) ‣ Custo: OYouTube gasta 1 milhão de dólares por dia! ‣ Qualidade da Experiência (QoE) Motivação Wednesday, May 7, 14
  • 26. ‣ Content Delivery Networks ‣ Escalabilidade: CDNs escalam com a adição de pontos de presença (PoP’s) ‣ Custo: OYouTube gasta 1 milhão de dólares por dia! ‣ Qualidade da Experiência (QoE) Motivação Wednesday, May 7, 14
  • 27. ‣ Content Delivery Networks ‣ Escalabilidade: CDNs escalam com a adição de pontos de presença (PoP’s) ‣ Custo: OYouTube gasta 1 milhão de dólares por dia! ‣ Qualidade da Experiência (QoE) Motivação Wednesday, May 7, 14
  • 28. Rebuffers by Region and Telecom Carrier at Brazil. Globo.com, 2013. Motivação Wednesday, May 7, 14
  • 29. ‣ Content Delivery Networks ‣ Escalabilidade: CDNs escalam com a adição de pontos de presença (PoP’s) ‣ Custo: OYouTube gasta 1 milhão de dólares por dia! ‣ Qualidade da Experiência (QoE) Motivação ‣ “4 out of 5 users abandon a video if it rebuffers during playback.” TubeMogul (December, 2009) Wednesday, May 7, 14
  • 30. Video Stream Quality Impacts Viewer Behavior: Inferring Causality Using Quasi-Experimental Designs, KRISHNAN S. Shunmuga.A. IEEE/ACM Transactions on Networking. 2013. Motivação ‣ StartupTime x Abandonment Rate Wednesday, May 7, 14
  • 32. ‣ Protocolos de Streaming Multimídia ‣ RTMP x HTTP Background Wednesday, May 7, 14
  • 33. ‣ Protocolos de Streaming Multimídia ‣ RTMP x HTTP HTTP versus RTMP:Which way to Go and Why?, Cisco Whitepaper (October, 2011) Background RTP/RTSP/RTMP HTTP-Based Mostly on top of UDP On top of HTTP Specialized Media Servers Segmenter + Ordinary Web Servers Low Delay High Delay Wednesday, May 7, 14
  • 34. ‣ Protocolos de Streaming Multimídia ‣ RTMP x HTTP Tempo Assistido mais usuários na melhor qualidade Qualidade Média Quality of Experience Report. Globo.com, 2013. Background Wednesday, May 7, 14
  • 35. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP Background Wednesday, May 7, 14
  • 36. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP Background Wednesday, May 7, 14
  • 37. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP video está segmentado! Background Wednesday, May 7, 14
  • 38. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP Background Wednesday, May 7, 14
  • 39. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP ‣ HTTP Caching r Background Wednesday, May 7, 14
  • 40. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP ‣ HTTP Caching r ‣ Transparent Proxies r Background $ curl -I "http://hls.glbvid.com/new/tvg/tvg_264/ tvg_1372204662819_1372204662819_1219.ts" HTTP/1.1 200 OK Server: nginx Date:Wed, 26 Jun 2013 01:19:34 GMT Content-Type: video/mp2t Content-Length: 172584 Connection: keep-alive Last-Modified:Wed, 26 Jun 2013 01:19:04 GMT Expires:Wed, 26 Jun 2013 01:24:14 GMT Cache-Control: public Wednesday, May 7, 14
  • 41. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP ‣ HTTP Caching r ‣ Transparent Proxies r ‣ Delay Introduction s Background Wednesday, May 7, 14
  • 42. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP ‣ HTTP Dynamic Streaming (HDS) by Adobe ‣ HTTP Live Streaming (HLS) by Apple (IETF Draft) ‣ Smooth Streaming by Microsoft ‣ DASH by MPEG Background Wednesday, May 7, 14
  • 43. ‣ Protocolos de Streaming Multimídia ‣ Protocolo baseado em HTTP ‣ HTTP Dynamic Streaming (HDS) by Adobe ‣ HTTP Live Streaming (HLS) by Apple (IETF Draft) ‣ Smooth Streaming by Microsoft ‣ DASH by MPEG Background Wednesday, May 7, 14
  • 44. ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos Background Wednesday, May 7, 14
  • 45. ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos Background Wednesday, May 7, 14
  • 46. ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos Background Wednesday, May 7, 14
  • 47. ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos Background Wednesday, May 7, 14
  • 48. ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos Background Wednesday, May 7, 14
  • 49. ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos Background Wednesday, May 7, 14
  • 50. Background ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos ‣ P2P Puro Wednesday, May 7, 14
  • 51. Background ‣ Peer-to-Peer ‣ Conceito de Arquitetura de Sistemas Distribuídos ‣ P2P Híbrido Wednesday, May 7, 14
  • 52. ‣ Peer-to-Peer ‣ PPLive, PPStream, CoolStreaming, ZIGZAG, PRIME,AnySee, HotStreaming, SplitStream, Chunkspread, DirectedPush,TURIN, Octoshape Background Wednesday, May 7, 14
  • 53. ‣ Peer-to-Peer ‣ PPLive, PPStream, CoolStreaming, ZIGZAG, PRIME,AnySee, HotStreaming, SplitStream, Chunkspread, DirectedPush,TURIN, Octoshape Background Wednesday, May 7, 14
  • 57. ‣ WebRTC ‣ PeerConnection API ‣ MediaStream API ‣ DataChannel API Background Wednesday, May 7, 14
  • 61. “In p2p systems, the higher quantity of active peers, the better delivery service works. DUYEN HOA HA,A novel Hybrid CDN-P2P mechanism for Effective real-time media streaming Pesquisa Wednesday, May 7, 14
  • 62. “Data delivery is better in broadcast based systems (...), but as the user volume for dynamic content increases, internet scale search and data delivery using peer-to-peer systems beats any broadcast based system. KAVYA LAKSHMI SUDHEERA, Dynamic P2P Streaming Using Delaunay Edges Pesquisa Wednesday, May 7, 14
  • 63. “Peer-assisted data sharing can reduce the network cost by dramatically decreasing download bandwidth of content servers up to 96%. SEONGHO CHO, Playback Latency Reduction for Internet Live Video Services in CDN-P2P Hybrid Architecture Pesquisa Wednesday, May 7, 14
  • 64. ‣ Propor Arquitetura P2P/CDN Híbrida para Distribuição deVídeo aoVivo utilizando WebRTC ‣ Evita a necessidade da instalação de plugins de terceiros ‣ Usa os poderes do peer-to-peer para escoar os chunks de vídeo entre os nós (usuários) ‣ Diminui o custo da transmissão Pesquisa Wednesday, May 7, 14
  • 65. A Hybrid Peer-to-Peer/CDN Model for Live Video Distribution Wednesday, May 7, 14
  • 66. O que já foi feito? Wednesday, May 7, 14
  • 67. ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC O que já foi feito? Wednesday, May 7, 14
  • 68. http://bem.tv/demo.html ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC O que já foi feito? Wednesday, May 7, 14
  • 69. ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC O que já foi feito? Wednesday, May 7, 14
  • 70. 205/44 246/49 157/115 ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC O que já foi feito? Wednesday, May 7, 14
  • 71. ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC ‣ Conceito de “enxame” & matching de nós (usuários) ‣ Geolocalização + Provedor de Internet http://server.bem.tv/room O que já foi feito? Wednesday, May 7, 14
  • 72. ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC ‣ Conceito de “enxame” & matching de nós (usuários) ‣ Geolocalização + Provedor de Internet O que já foi feito? Wednesday, May 7, 14
  • 73. ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC ‣ Conceito de “enxame” & matching de nós (usuários) ‣ Geolocalização + Provedor de Internet O que já foi feito? Wednesday, May 7, 14
  • 74. ‣ Troca de chunks de vídeo entre peers utilizando HTTP Live Streaming (HLS) e WebRTC ‣ Conceito de “enxame” & matching de nós (usuários) ‣ Geolocalização + Provedor de Internet ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 75. ‣ Protocolo minimalista de sinalização e troca de chunks A B C O que já foi feito? Wednesday, May 7, 14
  • 76. A B C A needs chunk bbb_3.ts ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 77. A B C <A> DESIRE:bbb_3.ts ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 78. A B C checking if have bbb_3.ts <A> DESIRE:bbb_3.ts checking if have bbb_3.ts ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 79. A B C <A> DESIRE:bbb_3.ts have bbb_3.ts! have bbb_3.ts! ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 80. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 81. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts choosing the best peer ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 82. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts C is the best! ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 83. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts <A-C> REQ:bbb_3.ts ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 84. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts <A-C> REQ:bbb_3.ts <C-A> OFFER:bbb_3.ts:<blob> ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 85. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts <A-C> REQ:bbb_3.ts <C-A> OFFER:bbb_3.ts:<blob> A have chunk bbb_3.ts! ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 86. A B C <A> DESIRE:bbb_3.ts <B-A> DESACK:bbb_3.ts <C-A> DESACK:bbb_3.ts <A-C> REQ:bbb_3.ts <C-A> OFFER:bbb_3.ts:<blob> timeout? go to CDN CDN ‣ Protocolo minimalista de sinalização e troca de chunks O que já foi feito? Wednesday, May 7, 14
  • 87. O que já foi feito? Wednesday, May 7, 14
  • 88. ‣ Primeiros Experimentos ‣ 10 Apple MacBooks White (2GB SDRAM) ‣ Mozila Firefox 27.1 (WebRTC compatible) ‣ Mesmo roteador Wi-Fi (10/100Mbps) ‣ Video ‣ Chunks com 5 segundos de duração ‣ 600 Kbps de bitrate (qualidade) ‣ CDN + Room Discoverer + P2P Signaling Server ‣ 1 server with 512MB of SDRAM em NY O que já foi feito? Wednesday, May 7, 14
  • 89. ‣ Primeiros Experimentos O que já foi feito? Wednesday, May 7, 14
  • 90. ‣ Resultado O que já foi feito? 0" 20" 40" 60" 80" 100" 120" 140" 1" 3" 5" 7" 9" 11" 13" 15" 17" 19" 21" 23" 25" 27" 29" 31" 33" 35" 37" 39" 41" 43" 45" 47" 49" 51" 53" 55" 57" 59" Requests' Minute' CDN.only'x'CDN.P2P'Requests'per'minute' CDN/only" CDN/P2P" Wednesday, May 7, 14
  • 91. ‣ Resultado ‣ CDN-only: 7457 requests para a CDN ‣ CDN-P2P: 4482 requests para a CDN O que já foi feito? Wednesday, May 7, 14
  • 92. ‣ Resultado ‣ CDN-only: 7457 requests para a CDN ‣ CDN-P2P: 4482 requests para a CDN ‣ Redução de 39.98% O que já foi feito? Wednesday, May 7, 14
  • 94. ‣ Nossa abordagem é promissora! Conclusão eTrabalhos Futuros Wednesday, May 7, 14
  • 95. ‣ Nossa abordagem é promissora! ‣ Melhorias: ‣ Convergência de Peers e Over Swarming ‣ Reputation, Partnership, Leader Election ‣ Protocolo de troca de chunks de vídeo ‣ Segurança do Conteúdo ‣ Poisoned Chunks ‣ DoS Starvation Conclusão eTrabalhos Futuros Wednesday, May 7, 14
  • 98. ‣ Dynamic Clustering in Delaunay-Based P2P NetworkedVirtual Environments. Matteo Varvello. http://www.eurecom.fr/fr/publication/2682/download/rs-publi-2682.pdf ‣ GoDel: Delaunay Overlays in P2P Networks via Gossip. Ranieri Baraglia. http://hpc.isti.cnr.it/ ~dazzi/pdf/Baraglia12P2Pgodel.pdf References Wednesday, May 7, 14
  • 99. ‣ Dynamic P2P Streaming Using Delaunay Edges. Kavya Lakshmi Sudheera. http:// www.ijera.com/papers/Vol3_issue6/FF36968971.pdf ‣ Optimized P2P Streaming Services with DelaunayTriangulation protocol.T. Hemanth. http:// rspublication.com/ijeted/jan13/1.pdf ‣ TreeP:ATree Based P2P Network Architecture. Benoit Hudzia. http://arxiv.org/pdf/cs/ 0608118.pdf ‣ Mesh or Multiple-Tree:A Comparative Study of Live P2P Streaming Approaches. Nazanin Magharei. http://mirage.cs.uoregon.edu/pub/infocom07-treemesh.pdf ‣ How Netflix Architects for Survival. Jeremy Edberg. http://www.infoq.com/presentations/ netflix-architecture-resilience References Wednesday, May 7, 14
  • 100. ‣ http://gigaom.com/2009/12/10/4-out-of-5-viewers-leave-if-a- stream-buffers-once/ ‣ https://people.cs.umass.edu/~ramesh/Site/HOME_files/imc208- krishnan.pdf ‣ http://www.ccs.neu.edu/home/cbw/4700/papers/p225.pdf ‣ http://www.bth.se/fou/cuppsats.nsf/all/ 16d53c7e6e725222c1257b01003764f3/$file/ BTH2012Guniganti.pdf ‣ http://www.cisco.com/c/en/us/products/collateral/video/as5100- series-media-processor/white_paper_c11-675935.pdf ‣ http://tools.ietf.org/html/draft-ietf-ppsp-survey-06#page-6 References Wednesday, May 7, 14
  • 101. References •Berkvist,A., Burnett, D., Jennings, C. Narayanan,A. (2011) “WebRTC 1.0: Real-Time Communication Between Browsers”.Working Draft. •Bronzino, F. Gaeta, R. Grangetto, M. Pau, G. (2012) “An Adaptive Hybrid CDN/P2P Solution for Content Delivery Networks”.VCIP, page 1-6, IEEE. •Cho, S., Cho, J., Shin, S. (2010) “Playback Latency Reduction for Internet LiveVideo Services in CDN-P2P Hybrid Architecture”. 2013 IEEE International Conference on Communications. •Huang, C.,Wang,A., Li, J., Ross, K. (2008) “Understanding hybrid CDN-P2P: why limelight needs its own Red Swoosh”. Proceedings of the 18th International Workshop on Network and Operating Systems Support for Digital Audio andVideo. •Katz,T. (2012) “Mission Complete: Red Bull Stratos lands safely back on Earth”. http://goo.gl/bX31hl, accessed in March 2014. •Kovacevic,A., Graffi, K., Pussep, K., Steinmetz, R. (2009) “Underlay awareness in P2P systems:Techniques and challenges”. IEEE Symposium on Parallel & Distributed Processing. •Kutten, S., Panduragan, G., Peleg, D., Robinson, P.,Trehan,A. (2013) “On the complexity of universal leader election”. Proceedings of the ACM symposium on Principles of distributed computing. •Li, B., Xie, S., Qu,Y., Keung, G.Y. (2008) “Inside the New CoolStreaming: Principles, Measurements and Performance Implications”. IEEE 27th Conference on Computer Communications. •Medina-López, C., Naranjo, J.A.M., García-Ortiz, J. P., Casado, L. G., González-Ruiz,V. (2013) “Execution of the P2PSP protocol in parallel environments”. XXIV Jornadas de Paralelismo. Madrid, Spain. •Naylor,A. (2013) “WebRTC is almost here, and it will change the web”. http://goo.gl/IgxF33, accessed in March 2014. •Nordyke, K, (2014) “HBO Go Crashes During ‘True Detective’ Finale”. http://goo.gl/zixUr7, accessed in March 2014. •Parmar, H. andThornburg, M. (2012) “Adobe’s RealTime Messaging Protocol”. http://goo.gl/cGMWPI, accessed in March 2014. •Rosenberg. J, Mahy, R., Matthews, P.Wing, D. (2008) “SessionTraversal Utilities for NAT (STUN)”. IEFT Proposed Standard. •Roussopolous, M., Baker, M., Rosenthal D. S. H., GiuliT. J., Maniatis, P., Mogul, P. (2004) “2 P2P or Not 2 P2P?”.Third International Workshop, IPTPS 2004. •Sandoval, G. (2013) “. Netflix Chief Product Officer: expect 4k Streaming within a year or two”. http://goo.gl/F4S133, accessed in March 2014. •Spangler,T. (2009) “YouTube May Lose $470 Million in 2009:Analysts”. http://goo.gl/oNgAzY, accessed in March 2014. •Xiong, L. and Liu, L. (2004) “PeerTrust: Supporting Reputation-BasedTrust for Peer-to-Peer Electronic Communities”. IEEETransactions on Knowledge and Data Engineering. •Yuste, L. and Melvin, H. (2012) “A Protocol Review for IPTV and WebTV Multimedia Delivery Systems”. Scientific Letters of the University of Zilina, vol 14. •Zimmerman,A., (2014) “ABC Promised to Livestream the Oscars andTotally Failed”. http://goo.gl/sTNb7d, accessed in March 2014. Wednesday, May 7, 14