SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Google seems ready to try to take over the big screen again. Chromecast provides a unique way for developers to extend their apps with a second screen experience. This talk shows the inner bits and bolts of Chromecast and sheds light on Android’s deep connection with Chromecast.
Saturday, 17 May 2014
Presented at Android Developer Days 2014, Ankara, Turkey
Student Research Assistant
at
University of Applied Sciences Aachen
Google seems ready to try to take over the big screen again. Chromecast provides a unique way for developers to extend their apps with a second screen experience. This talk shows the inner bits and bolts of Chromecast and sheds light on Android’s deep connection with Chromecast.
Saturday, 17 May 2014
Presented at Android Developer Days 2014, Ankara, Turkey
8.
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
9.
GoogleTV: Pros
• Part of the Android-family.
• Deploying apps is easy™ (via Play Store)
• Re-use most of your existing Android code
10.
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)
13.
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
14.
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
16.
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.
Things have been broken. But the SDK is stable now.
17.
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)
18.
TCP
WebTech
UDP
ChromeCast: New Protocol
• mDNS (Multicast Domain Name System, aka Bonjour)
• Protobuf over TLS Sockets
• RAMP (Remote Application Media Protocol)
• HTML5 & JS (You know that this is)
• WebSockets (Bi-directional communication Browser<>WebApp)
• WebRTC (Web Real Time Communication, ex. Screen Mirroring)
19.
ChromeCast: How it works!
1. Advertises ChromeCast
using mDNS (UDP Broadcast)
!
2. Discovers Endpoints using mDNS
!
!
3. Requests App and opens
TLS Socket connection
!
!
!
4. CC fetches HTML5 based 1st
Screen App (opens WebSocket)
20.
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
21.
ChromeCast: Sender App
• Cast SDK available for
• You need to pay $5 to create an account
on the Google Cast Developer Console
22.
ChromeCast is not just
for „streaming“ video
content.
23.
It’s a remote controllable
Chrome Browser
running on your TV.
26.
Part III: ChromeCast
without ChromeCast*
* includes shameless plug
27.
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
28.
CheapCast: Components
WebView
SSDP Service
DIAL REST WS
ChromeCast API Ext
1st Screen Output
Receiver App
Sender App
29.
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.
30.
CheapCast: OpenSource
https://github.com/mauimauer/cheapcast
Licensed under the Apache 2.0 License
Made possibleby Chromium
Totally useless
right now!
But it mightcome back…