Chromecast, CheapCast and TV - DevFest Brussels 2013

Post on 09-May-2015

1.948 views 2 download

description

Is GoogleTV doomed? Will Chrome is in Chromecast? Learn how Google's Chromecast works on the inside.

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