Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chromecast, CheapCast and TV

mauimauer
November 16, 2013

Chromecast, CheapCast and TV

How ChromeCast works (and a bit about the future of GoogleTV).

Presented at DevFest Brussels 2013

mauimauer

November 16, 2013
Tweet

More Decks by mauimauer

Other Decks in Technology

Transcript

  1. Who am I? Sebastian Mauer GDG Aachen Co-Lead CS Student

    Software Engineer I don’t work for Google…yet
  2. GoogleTV • Google’s first attempt to „own“ the TV •

    Introduced at Google I/O 2010 • First Device, x86-based
 Logitech Revue • US only at launch
  3. By the summer of 2012, the majority of the televisions

    you see in stores will have Google TV embedded. - Eric Schmidt at LeWeb 2011
  4. Three Generations 1. Generation, late 2010
 based on Android 3.2

    2. Generation, Summer 2012 based on Android 3.2 3. Generation, 2013
 probably on Android 4.2.2
  5. GoogleTV: Pros • Part of the Android-family. • Deploying apps

    is easy™ (via Play Store) • Re-use most of your existing Android code
  6. GoogleTV: Cons • Does not evolve as fast as mainline

    Android • Not many devices sold (500,000 - 1,000,000) • Late start in the European Union (2012)
  7. ChromeCast: Hardware • Model Number: H2G2-42 • It’s not based

    on ChromeOS • It’s based on Android
 and Chromium • It’s not going to kill GoogleTV http://www.ifixit.com/Teardown/Chromecast+Teardown/16069
  8. ChromeCast: Pros • Very cheap hardware (35$) • Very easy

    to use (My Grandma can do it™) • Web Developers can easily write „Receiver“-Apps • Simple Protocol Stack
  9. ChromeCast: Cons • Google Cast SDK is still a Developer

    Preview
 (read: things will break, things will change) • You have to manually whitelist
 all your apps with Google • It’s not officially released outside the U.S.
  10. WebTech UDP ChromeCast: Protocol Stack • SSDP (Simple Service Discovery

    Protocol) • DIAL (DIscovery And Launch) • RAMP (Remote Application Media Protocol) • HTML5 & JS (You know that this is) • WebSockets (Bi-directional communication Browser<>WebApp) • WebRTC (Web Real Time Communication)
  11. ChromeCast: How it works! 1. Advertises ChromeCast
 using SSDP (UDP

    Broadcast) ! 2. Discovers Endpoints using DIAL ! ! 3. Requests App and opens
 WebSocket connection ! ! ! 4. CC fetches HTML5 based 1st Screen App (opens WebSocket)
  12. ChromeCast: How it works! II ! ! ! ! 5.

    Sends request to play media ! ! ! ! ! 6. HTML5 app receives
 media request (WebSocket)
 starts fetching content. ! ! ! ! ! ! 7. Media is downloaded/streamed
 by ChromeCast device
  13. ChromeCast: DIAL • Protocol published by Netflix • Uses SSDP

    for Service Announcement • DIAL REST WebService for exchanging
 Device capabilities and controlling
  14. ChromeCast: Sender App • Cast SDK available for
 
 


    
 • Needs Whitelisting with Google
  15. <html> <script src="https://www.gstatic.com/cast/js/receiver/1.0/cast_receiver.js"> </script> <script type="text/javascript"> ! var receiver =

    new cast.receiver.Receiver( 'App ID', [cast.receiver.RemoteMedia.NAMESPACE], "", 5); var remoteMedia = new cast.receiver.RemoteMedia(); remoteMedia.addChannelFactory( receiver.createChannelFactory(cast.receiver.RemoteMedia.NAMESPACE)); ! receiver.start(); ! window.addEventListener('load', function() { var elem = document.getElementById('vid'); remoteMedia.setMediaElement(elem); }); ! </script> <body> <video id="vid" style="position:absolute;top:0;left:0;height:100%;width:100%" /> </body> </html> ChromeCast: Receiver App
  16. CheapCast all the Droids • Is an app that emulates

    a ChromeCast (or Google Cast) device on almost any Android Device • Implements DIAL, RAMP/WS Proxy-ing • Does not care if your id is whitelisted or not. • Written by me
  17. CheapCast: Components WebView SSDP Service DIAL REST WS ChromeCast API

    Ext 1st Screen Output Receiver App Sender App
  18. CheapCast: Use Cases • Start developing ChromeCast apps without owning


    an actual ChromeCast Device • Turn one of your old Android-devices into a
 ChromeCast Dongle (connect via MHL<->HDMI) • Cast content from your Android Smartphone
 to your Android Tablet just for the hell of it.
  19. Q&A