ADD14: ChromeCast and the future of Android TV

Post on 01-Dec-2014

1,127 views 12 download

description

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

transcript

ChromeCast and the future of Android TV

Sebastian Mauer GDG Aachen

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(aka „The History“)

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: How does it work?

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.

Things have been broken. But the SDK is stable now.

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)

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)

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)

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: Sender App

• Cast SDK available for

• You need to pay $5 to create an accounton the Google Cast Developer Console

ChromeCast is not just for „streaming“ video content.

It’s a remote controllable Chrome Browser running on your TV.

Use Cases: PhotoCast

Use Cases: CastPad

Part III: ChromeCast without ChromeCast*

* 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: OpenSource

https://github.com/mauimauer/cheapcast Licensed under the Apache 2.0 License

Made possible by ChromiumTotally useless

right now!

But it might come back…

Part IV: Android TV(aka „What might be…“)

Just Rumours? Yes!But Google Cast ist not going away soon.

Q&A

Follow me on G+

First one to scan this QRCode to find out the Codeword wins.

Thanks. Teşekkürler.