Chromecast, CheapCast and TV - DevFest Brussels 2013
-
Upload
sebastian-mauer -
Category
Technology
-
view
1.948 -
download
2
description
Transcript of Chromecast, CheapCast and TV - DevFest Brussels 2013
Chromecast, Cheapcast and TV
Sebastian Mauer GDG Aachen
DevFest Brussels November 16th, 2013
This Presentation contains QR-Codes
Who am I?Sebastian MauerGDG Aachen Co-Lead CS StudentSoftware Engineer I don’t work for Google…yet
Part I: Google TV
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
By the summer of 2012, the majority of the televisions you see in stores will
have Google TV embedded.- Eric Schmidt at LeWeb 2011
GoogleTV
http://9to5mac.com/2013/07/16/report-at-56-apple-tv-takes-majority-of-streaming-device-marketshare-in-2012/
Three Generations1. 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
GoogleTV: Pros
• Part of the Android-family.
• Deploying apps is easy™ (via Play Store)
• Re-use most of your existing Android code
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)
Help me Android. You're my only hope
Part II: ChromeCastaka Google Cast Devices
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.c
om/Tea
rdow
n/Chrom
ecas
t+Te
ardo
wn/16
069
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
ChromeCast: Cons
• Google Cast SDK is still a Developer Preview(read: things will break, things will change)
• You have to manually whitelistall your apps with Google
• It’s not officially released outside the U.S.
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)
ChromeCast: How does it work?
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)
ChromeCast: How it works! II!!!!
5. Sends request to play media
!!!!!
6. HTML5 app receivesmedia request (WebSocket) starts fetching content.
!!!!!!
7. Media is downloaded/streamed by ChromeCast device
ChromeCast: DIAL
• Protocol published by Netflix
• Uses SSDP for Service Announcement
• DIAL REST WebService for exchanging Device capabilities and controlling
ChromeCast: DIAL
SearchSSDP
DiscoverySSDP
CapabilitiesHTTP
StartHTTP
ChromeCast: Sender App
• Cast SDK available for
• Needs Whitelisting with Google
<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
ChromeCast is not just for „streaming“ content.
It’s a remote controllable Chrome Browser running on your TV.
Part III: CheapCast*
* includes shameless plug
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
CheapCast: Components
WebView
SSDP Service
DIAL REST WS
ChromeCast API Ext
1st Screen Output
Receiver App
Sender App
CheapCast: Use Cases
• Start developing ChromeCast apps without owningan actual ChromeCast Device
• Turn one of your old Android-devices into aChromeCast Dongle (connect via MHL<->HDMI)
• Cast content from your Android Smartphoneto your Android Tablet just for the hell of it.
CheapCast: Use Cases
Google Music
YouTube
CheapCast
CheapCast: OpenSource
https://github.com/mauimauer/cheapcast Licensed under the Apache 2.0 License
Upcoming Feature:
Tab Casting!Made possible by Chromium
Demo
CheapCast: Get it now
Q&A