Desenvolvimento de aplicações de TV interactiva na plataforma MEO IPTV<br />João Serra<br />Microsoft Student Partner @ IS...
Microsoft Mediaroom - Overview<br /><ul><li> O Mediaroom (antigamente conhecido por MS TV IPTV Edition) é um middleware de...
Features: Live TV, SD/HD, ICC, DVR Multiroom, VOD, Time-shifting, Muiltiview, Media Sharing - UPnP-AV(apenas fotos e music...
 Versão para Xbox360 e futuramente para PC com Windows Media Center.
 Usa protocolos standard (IGMP, RTP, HTTP, UPnP-AV, MPEG2TS, DVB, MPEG4 Part10(H.264), VC1, SOAP) mas não é standard/inter...
Hardware<br /><ul><li> Chipset: Sigma Designs SMP8634 SystemOnChip (SoC)
 CPU: 300mhz MIPS 4KCe core.
 Hardware Video decoding: MPEG2, MPEG4 part2/part10, VC1 eWMV9.
 Hardware Audio decoding: MP3, AAC, WMA e AC3.
 Co-processador de segurança(XPU) com AES, RSA e DVB CSA por    hardware, suportaainda secure storage de chavesprivadas RSA.
 RAM: 128MB
 Outros: Disco rígido, SCART e CVBS RCAs (suporta Macrovision), HDMI(suporta HDCP), Ethernet 10/100, Flash 1MB para bootlo...
 OS: Windows CE (também suporta Linux)</li></li></ul><li>Boot Process (muito resumido)<br /><ul><li>Bootloader arranca e l...
 Faz o download do ficheiro “bootstrap” que contém o URL do servidor e os certificados da Root CA do sistema ou do ficheir...
 Verifica se existe firmware mais actualizado em http://194.65.47.50/upgrade/upgrade-files/PKG.DIR, se sim faz o download.
 Verifica a integridade de todos os ficheiros do firmware (hashes SHA1 encriptados com RSA) (um dos motivos pelo qual as c...
 Liga-se ao URL do servidor(http://194.65.47.50/bootstrap/bootstrap.asmx) via HTTP/SOAP fazendo login com o a chave public...
Done!</li></li></ul><li>Sistema Operativo<br /><ul><li> Windows CE 5.0
 Disco contém duas partições, uma FAT32 para as gravações (encriptadas) e outra FAT16 com o Sistema Operativo.
 Mediaroom composto essencialmente por 3 ficheiros com excepção do WinCE e de uma pasta com os ficheiros XML e imagens que...
 tv2client.exe : Aplicação principal – Assembly .NET Compact Framework 2.0
 tv2engine.dll : DLL de apoio ao tv2client.exe (hardware e DRM) – nativo
 tv2tasman.exe – Browser XHTML da plataforma - nativo</li></li></ul><li>Desenvolvimento de aplicações <br />
Mediaroom Browser (akaTasman)<br /><ul><li> Não é baseado no Trident (motor de rendering do IE)
 Originalmente desenvolvido como motor de rendering do IE para Mac, posteriormente usado no MSN for Mac (extinto) e no Off...
 Para testar no PC, usar browsers baseados em Gecko (Firefox)
 Browser relativamente bom a nível de Standards Compliance, a Wikipedia tem um comparativo de renderers onde o Tasman está...
http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Cascading_Style_Sheets)
http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Document_Object_Model)
http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(ECMAScript)</li></li></ul><li>Mediaroom Browser (akaTasman)<br ...
 XHTML 1.0 Strict
 CSS1.0, CSS 2.1
 JavaScript – JScript.dll v5.6
 DOM1, DOM2
 AJAX (XMLHttpRequest)
 Cookies (porsessão, nãosãopersistentes)
Formatos de ImagemSuportados
 GIF89a
Próximos SlideShares
Carregando em…5
×

Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV

6.338 visualizações

Publicada em

Desenvolvimento de Aplicações de TV interactiva na plataforma MEO IPTV

Publicada em: Tecnologia, Diversão e humor
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
6.338
No SlideShare
0
A partir de incorporações
0
Número de incorporações
38
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV

  1. 1. Desenvolvimento de aplicações de TV interactiva na plataforma MEO IPTV<br />João Serra<br />Microsoft Student Partner @ ISEL<br />mulder3@mulder3.net<br />Dezembro 2009<br />
  2. 2. Microsoft Mediaroom - Overview<br /><ul><li> O Mediaroom (antigamente conhecido por MS TV IPTV Edition) é um middleware de IPTV.
  3. 3. Features: Live TV, SD/HD, ICC, DVR Multiroom, VOD, Time-shifting, Muiltiview, Media Sharing - UPnP-AV(apenas fotos e musica), Multiview, EPG, RemoteRecording, etc.
  4. 4. Versão para Xbox360 e futuramente para PC com Windows Media Center.
  5. 5. Usa protocolos standard (IGMP, RTP, HTTP, UPnP-AV, MPEG2TS, DVB, MPEG4 Part10(H.264), VC1, SOAP) mas não é standard/interoperável. (não adere ao OpenIPTVForum)</li></li></ul><li>Microsoft Mediaroom<br />O Que é?<br />
  6. 6. Hardware<br /><ul><li> Chipset: Sigma Designs SMP8634 SystemOnChip (SoC)
  7. 7. CPU: 300mhz MIPS 4KCe core.
  8. 8. Hardware Video decoding: MPEG2, MPEG4 part2/part10, VC1 eWMV9.
  9. 9. Hardware Audio decoding: MP3, AAC, WMA e AC3.
  10. 10. Co-processador de segurança(XPU) com AES, RSA e DVB CSA por hardware, suportaainda secure storage de chavesprivadas RSA.
  11. 11. RAM: 128MB
  12. 12. Outros: Disco rígido, SCART e CVBS RCAs (suporta Macrovision), HDMI(suporta HDCP), Ethernet 10/100, Flash 1MB para bootloader, Flash 32MB(versão sem disco), acesso JTAG(excepto XPU)
  13. 13. OS: Windows CE (também suporta Linux)</li></li></ul><li>Boot Process (muito resumido)<br /><ul><li>Bootloader arranca e liga-se a discovery.iptv.telecom.ptviatftp.
  14. 14. Faz o download do ficheiro “bootstrap” que contém o URL do servidor e os certificados da Root CA do sistema ou do ficheiro “dra” caso esteja em RecoveryMode. (boot.prt >3)
  15. 15. Verifica se existe firmware mais actualizado em http://194.65.47.50/upgrade/upgrade-files/PKG.DIR, se sim faz o download.
  16. 16. Verifica a integridade de todos os ficheiros do firmware (hashes SHA1 encriptados com RSA) (um dos motivos pelo qual as caixas são extremamente lentas a arrancar)
  17. 17. Liga-se ao URL do servidor(http://194.65.47.50/bootstrap/bootstrap.asmx) via HTTP/SOAP fazendo login com o a chave publica do seu certificado via um challengeSSL-like. Todas as comunicções com o servidor são feitas via SOAP encriptado com muita serialização XML e base64 pelo meio.(outro dos motivos pelo qual as caixas são extremamente lentas a arrancar)
  18. 18. Done!</li></li></ul><li>Sistema Operativo<br /><ul><li> Windows CE 5.0
  19. 19. Disco contém duas partições, uma FAT32 para as gravações (encriptadas) e outra FAT16 com o Sistema Operativo.
  20. 20. Mediaroom composto essencialmente por 3 ficheiros com excepção do WinCE e de uma pasta com os ficheiros XML e imagens que descrevem a interface gráfica.
  21. 21. tv2client.exe : Aplicação principal – Assembly .NET Compact Framework 2.0
  22. 22. tv2engine.dll : DLL de apoio ao tv2client.exe (hardware e DRM) – nativo
  23. 23. tv2tasman.exe – Browser XHTML da plataforma - nativo</li></li></ul><li>Desenvolvimento de aplicações <br />
  24. 24. Mediaroom Browser (akaTasman)<br /><ul><li> Não é baseado no Trident (motor de rendering do IE)
  25. 25. Originalmente desenvolvido como motor de rendering do IE para Mac, posteriormente usado no MSN for Mac (extinto) e no Office 2004 for Mac. (Office 2008 for Mac usa WebKit)
  26. 26. Para testar no PC, usar browsers baseados em Gecko (Firefox)
  27. 27. Browser relativamente bom a nível de Standards Compliance, a Wikipedia tem um comparativo de renderers onde o Tasman está incluído:
  28. 28. http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Cascading_Style_Sheets)
  29. 29. http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Document_Object_Model)
  30. 30. http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(ECMAScript)</li></li></ul><li>Mediaroom Browser (akaTasman)<br /><ul><li>Standards suportadospelo Browser Mediaroom
  31. 31. XHTML 1.0 Strict
  32. 32. CSS1.0, CSS 2.1
  33. 33. JavaScript – JScript.dll v5.6
  34. 34. DOM1, DOM2
  35. 35. AJAX (XMLHttpRequest)
  36. 36. Cookies (porsessão, nãosãopersistentes)
  37. 37. Formatos de ImagemSuportados
  38. 38. GIF89a
  39. 39. JPEG
  40. 40. PNG (1 bit de transparência, nãosuporta alpha channel)
  41. 41. Não Suportado
  42. 42. Java, ActiveX, Flash ouSilverlight</li></li></ul><li>Mediaroom Browser - Video<br /><ul><li> Browser suportaaté 6 PIPs(streams de video) masapenas um com audio!</li></ul>&lt;a id=&quot;tv&quot; class=&quot;tile&quot; href=&quot;tune:1&quot; accesskey=&quot;1&quot;&gt; <br /> &lt;object class=&quot;tv&quot; type=&quot;video/x-ms-iptv&quot;&gt; <br /> &lt;param name=&quot;url&quot; value=&quot;tune:1&quot; /&gt; <br /> &lt;param name=&quot;ispip&quot; value=&quot;0&quot; /&gt; <br /> &lt;imgsrc=&quot;tv.png&quot; class=&quot;tvpng&quot;/&gt; // fallback os browsers “normais”<br /> &lt;/object&gt; <br />&lt;/a&gt; <br /><ul><li> url/href:
  43. 43. tune:<canal>
  44. 44. vod:<guid_do_video_on_demand> // nãovãousaristo!
  45. 45. mms://windowsmediaserver/file.wmv // suporta seek
  46. 46. http://servidorweb/file.wmv
  47. 47. accesskey: atalhoparateclado.
  48. 48. ispip: 0 – com som; 1 – semsom;
  49. 49. Elementovaiparafullscreenquandoseleccionado (devidoao <a>)
  50. 50. Codecs: Video- apenas WMV9(fourcc wmv3); Audio- WMA ou MP3;
  51. 51. Video ésempreo topmost element!!! (nãosuporta overlays) </li></li></ul><li>Mediaroom Browser - Resoluções<br /><ul><li> Browser suportabasicamente 640x480 (4:3) e 854x480 (16:9) efazumaadaptação “best fit”</li></ul>640 x 480<br />4:3<br />748 x 480<br />14:9<br />854 x 480<br />16:9<br />Cliente em 4:3<br />Cliente em 16:9<br />
  52. 52. Mediaroom Browser - Resoluções<br /><ul><li> A informação do modo do clientevai num header http:
  53. 53. Verificaro header server-side eusar CSS parafazer a adaptação:</li></ul> &lt;html style=&quot;width:854px; height: 480px;&quot;&gt;<br /> &lt;html class=&quot;tvWide&quot;&gt; <br /> .tvWide { width: 854px; height: 480px; } <br /><ul><li>window.external.pageColor - define a cor das barras</li></li></ul><li>Mediaroom Browser - Input<br /><ul><li>O input éfeitounicamenteatravés do telecomando:</li></ul>&lt;body onkeypress=&quot;onRemoteEvent(window.event.keyCode)”&gt;<br /> function onRemoteEvent(keyChar) { <br /> switch (keyChar){ <br /> case 0x30: <br /> …. <br /> } <br /> }<br />&lt;/body&gt; <br /><ul><li>Para navegação com otelecomando, entre elementos, usar CSS:</li></ul> .cssStyle{<br />nav-top:url(&apos;#id_do_elemento_acima&apos;);<br />nav-down:url(&apos;#id_do_elemento_abaixo&apos;);<br />nav-right:url(&apos;#id_do_elemento_direita&apos;);<br />nav-left:url(&apos;#id_do_elemento_esquerda&apos;);<br /> }<br /><ul><li>Para modificaro outline do elementoquando tem focus, usar CSS (outline-color, outline-width, outline-style) </li></li></ul><li>Mediaroom Browser - Dicas<br /><ul><li>Verificarquetodas as páginassão XHTML válido.
  54. 54. http://validator.w3.org/
  55. 55. Usarposicionamento fixed ou absolute semprequepossível.
  56. 56. Não incluirinformação de estilosemcadaelementoetentarconsolidarosatributos das classes.
  57. 57. Colocarosestiloseatributosemficheiros .css
  58. 58. Usarpoucasimagensesóquandoabsolutamentenecessário, nãousarumaimagemgrandequando um padrãofuncionarigualmentebem.
  59. 59. Usar CSS paraMouseOversenão JavaScript (a não ser quesejamesmonecessário)
  60. 60. Para inserção de textousar um teclado virtual ou Triple-Tap implementadoem JavaScript (mandem-me um mail queeumando-vos um MeoTripleTap.js)
  61. 61. Ser cauteloso com a utilizaçãoda RAM! É um recursolimitado!</li></li></ul><li>Mediaroom Browser - Dicas<br /><ul><li>Em JavaScript nãoiterar no DOM repetidamente, guardarreferênciasparaosobjectosencontradosemvariáveissemprequepossível.
  62. 62. Evitaraomáximoanimaçõesnastransições.
  63. 63. Colocaro JavaScript emficheiros .js
  64. 64. Criar JavaScript omaisreduzidoeeficientepossível (nada de jQuerye Prototype)
  65. 65. window.external.tv_LastChannelTunedcontémo nr. do canal queoutizadorestava, antes de entrarnaapliacação.
  66. 66. window.external.tv_DeviceIdcontémo nr. serie de cadacaixa. (ClientID)
  67. 67. Háteclasquesórespondem a “onkeypress”, outrassórespondem a “onkeydown”.
  68. 68. Logicamente, nemtodas as teclaspodem ser apanhadaspor JavaScript (ex: Menu,Vod, Power, etc)
  69. 69. Se for necessáriousartranscoding de video on-the-fly usarlibVLC, </li></ul>filtergraphs DirectShow, Windows Media Format SDK, etc<br />
  70. 70. Mediaroom Browser - Dicas<br />&lt;object id=&quot;loadArea&quot; type=&quot;text/html&quot; data=“dados.html”&gt;&lt;/object&gt;<br />domElement.style = &quot;font: 12px; background-color: blue&quot;; <br />domElement.setAttribute(&quot;style&quot;, &quot;font: 12px; background-color: blue&quot;);<br />domElement.style.fontSize = &quot;12px&quot;; <br />domElement.style.backgroundColor = &quot;blue&quot;;<br />domElement.class = &quot;read&quot;; <br />.innerText; .innerHTML; <br />function AppendText(element, textToAdd) { <br />varp = document.createElement(&quot;p&quot;); <br />p.appendChild(document.createTextNode(textToAdd + &quot; &quot;)); <br />element.appendChild(p); <br />} <br />
  71. 71. RemoteKeys<br /><ul><li>Fazer Telnet ao IP da box, naporta 8082
  72. 72. Comandos:
  73. 73. key=<key_code_da_tecla>
  74. 74. quit= // Corta a ligação
  75. 75. Exemplo: Seleccionaro canal 20:
  76. 76. key=50 // tecla “2”
  77. 77. key=48 // tecla “0”
  78. 78. O delay éigualaousadopelotelecomando (cerca de 2s)
  79. 79. KeyCodesiguaisaosusadospelo JavaScript.
  80. 80. Não existequalquertipo de autenticação! Não usarsemautorização do proprietário do equipamento!!!</li></li></ul><li>KeyCodes: JavaScript e RemoteKeys<br /><ul><li>KEY_0=48
  81. 81. KEY_1=49
  82. 82. KEY_2=50
  83. 83. KEY_3=51
  84. 84. KEY_4=52
  85. 85. KEY_5=53
  86. 86. KEY_6=54
  87. 87. KEY_7=55
  88. 88. KEY_8=56
  89. 89. KEY_9=57
  90. 90. KEY_GREEN=141
  91. 91. KEY_BLUE=143
  92. 92. KEY_RED=140
  93. 93. KEY_YELLOW=142
  94. 94. KEY_UP=38
  95. 95. KEY_DOWN=40
  96. 96. KEY_LEFT=37
  97. 97. KEY_RIGHT=39
  98. 98. KEY_OK=13
  99. 99. KEY_ENTER=13
  100. 100. KEY_MENU=11
  101. 101. KEY_SPACE=32
  102. 102. KEY_BACK=8
  103. 103. KEY_BROWSER_BACK=166
  104. 104. KEY_PAGEUP=33
  105. 105. KEY_PAGEDOWN=34
  106. 106. KEY_DELETE=46</li></li></ul><li>Deployment – apenas routers Thomson<br /><ul><li>Ligarao router via telnet:
  107. 107. UserName: “sumeo”; Password: “m30acc355” (nãousar Administrator/3!play)
  108. 108. Inseriroscomandos:
  109. 109. dsd state enabled
  110. 110. dsdurlfilter state enabled
  111. 111. dsdurlfilter rule addruleurl=http://meosapo.iptv.telecom.pt action=redirect redirect=http://my_server.com
  112. 112. cwmp state disabled // Istosó serve parao router não se ligar a acs.iptv.telecom.pt via TR-069 edarcabo das configurações...
  113. 113. Basicamenteredireccionao URL de umaapliacaçãoexistenteparaonossoservidor.
  114. 114. UsaroMeoSapoporqueépossivelacederáaplicaçãoatravés de dois URLs (sendoooutro http://meo.tv.sapo.pt) Assimpode-se colocar um link nanossaaplicaçãoparanãoperdermosoacessoaoMeoSapo.</li></li></ul><li>ADK - Application Development Kit<br />
  115. 115. ADK - Application Development Kit<br /><ul><li>Acesso ao ADK requer a assinatura de um NDA e está acessível apenas aos operadores e parceiros deste :(</li></li></ul><li>
  116. 116.
  117. 117.
  118. 118.
  119. 119.
  120. 120.
  121. 121.
  122. 122.
  123. 123.
  124. 124.
  125. 125.
  126. 126. URLs de aplicações existentes<br /><ul><li>Portugal Telecom - Meo
  127. 127. MeoFotos: http://meofotos.app.iptv.telecom.pt
  128. 128. MeoSapo: http://meosapo.iptv.telecom.pt/ (ou http://meo.tv.sapo.pt)
  129. 129. MeoVideoclube: http://meovideoclube.app.iptv.telecom.pt/
  130. 130. Meo Magazine: http://meomagazine.app.iptv.telecom.pt/meohome/
  131. 131. Meo Kids: http://meokids.app.iptv.telecom.pt/MeoKids/Default.aspx
  132. 132. Meo Kiddy: ttp://meokids.app.iptv.telecom.pt/MeoKids/DefaultKiddy.aspx
  133. 133. MeoJogos: http://meojogos.app.iptv.telecom.pt/Default.html (ver data/Games.js)
  134. 134. Deutsche Telekom – T-Home
  135. 135. T-Home Magazine: http://vcp.entertain.inside.iptv.t-online.de/
  136. 136. T-home Radios http://www.t-online.de/service/redir/mediareceiver_radio.htm
  137. 137. Algumasaplicaçõesprecisam do ClientIDpassadoporparametronavariável “tv_DeviceId” (ex:http://meofotos.app.iptv.telecom.pt?tv_DeviceId=01234567-89ab-cdef-0123-456789abcdef) PodemverovossoClientIDnaopção “Informações de Sistema” do Meo
  138. 138. Nota: odomínioiptv.telecom.ptsóéacessivel a clientesMeo</li></li></ul><li>WebService EPG<br /><ul><li> http://services.sapo.pt/Metadata/Service/EPG
  139. 139. GetChannelByDateInterval
  140. 140. GetChannelDetail
  141. 141. GetChannelList
  142. 142. GetChannelListByDateInterval
  143. 143. GetChannelListOrderByName
  144. 144. GetMeoChannelListByCommercialOfferId
  145. 145. GetMeoCommercialOffers
  146. 146. GetProgramById
  147. 147. GetProgramListByChannelDateInterval</li></li></ul><li>Dicas gerais para TV<br /><ul><li> As televisões CRT, Plasmas eLCDsfazemoverscanecortam parte daimagem, deixarmargem de segurança.
  148. 148. A TV vê-se a algumadistância, usartextoomaiorpossível, evitartamanhosinferiores a 16/18
  149. 149. Evitarlinhas de apenas 1 pixel, em CRTs causam flicker
  150. 150. As cores na TV resultamdiferente do que no PC, testaremvárias TVs
  151. 151. Usar cores bemcontrastadasparamelhorar a legibilidade
  152. 152. Verificarqueositenssãofacilmenteacessíveis com um telecomando</li></li></ul><li>Links<br /><ul><li>http://www.t-hack.com</li></li></ul><li>Microsoft Mediaroom<br /><ul><li> Q&A</li></li></ul><li>Obrigado<br />João Serra<br />mulder3@mulder3.net<br />Blog: http://www.mulder3.net<br />Twitter: http://twitter.com/JoaoSerra<br />

×